Зміст
1. MathML (Mathematical Markup Language)
1.1 Математика і її система позначень
1.2 Витоки та цілі
1.2.1 Історія MathML
1.2.2 Обмеженість HTML
1.2.3 Вимоги до математичної розмітці
1.2.4 Цілі проекту MathML
1.3 Роль MathML в Мережі
1.3.1 Існуючі мови математичної розмітки
1.3.2 Механізм розширення HTML
1.3.3 Механізм розширення браузера
1.4 Огляд MathML
1.4.1 Таксономія елементів MathML
1.4.2 Розмітка подання
1.4.3 Розмітка змісту
1.4.4 Об'єднання подання та змісту
1.5 MathML в документах
1.6 Приклади MathML
1.6.1 Приклади розмітки подання
1.6.2 Приклади розмітки змісту
1.6.3 Приклади змішаної розмітки
1.7 Синтаксис і граматика MathML
1.7.1 Синтаксис і граматика MathML
1.7.2 Приклад синтаксису XML
1.7.3 Дочірні елементи проти аргументів
1.7.4 Значення атрибутів MathML
1.7.4.1 Синтаксичні нотації, використовувані в специфікації MathML
1.7.4.2 Атрибути з одиницями вимірювання
1.7.4.3 CSS-сумісні атрибути
1.7.4.4 Значення атрибутів за умовчанням
1.7.4.5 Значення атрибутів у MathML DTD
1.7.5 Атрибути, загальні для всіх елементів MathML
1.7.6 Згортання прогалин у введенні
2. Можливості сучасних браузерів при роботі з MathML
2.1 Mozilla & Firefox
2.2 Microsoft Internet Explorer
2.3 Opera
Список використаної літератури
1. MathML (Mathematical Markup Language)
MathML (Mathematical Markup Language) представляє собою мову розмітки математичних додатків, заснований на XML. Він був розроблений Консорціумом WWW (W3C) і прийнятий в якості Рекомендації. Поточною версією є Mathematical Markup Language (MathML) Version 2.0 (Second Edition), затвердженого 21 жовтня 2003 року.
MathML реалізує дві "точки зору" на математичну розмітку. Один з її видів - це розмітка подання (Presentation Markup), яка описує візуальну форму представлення математичної формули. Другий - розмітка змісту (Content Markup), що виражає семантичний зміст.
MathML розглядає не тільки уявлення, а й сенс елементів формули. Також розробляється система розмітки математичної семантики, покликана доповнити MathML. Вона називається OpenMath.
1.1 Математика і її система позначень
Характерною рисою математичної інформації є використання складною і високорозвиненою двовимірної символьної системи позначень. Однак, як писав JR Pierce у своїй книзі з теорії комунікації, математика та її нотація не повинні розглядатися як одне і те ж. Математичні ідеї існують незалежно від способу їх подачі. Тим не менш, взаємозв'язок між значенням і позначенням дуже тонка, і в можливості представляти і маніпулювати ідеями в символьній формі криється значна міць математичного апарату, як інструменту опису та аналізу. Основні труднощі при впровадженні математики в World Wide Web полягає в тому, щоб зафіксувати як уявлення, так і зміст (тобто значення) таким чином, щоб у документах максимально використовувати високорозвинену систему математичної нотації і потенціал взаємодії в електронних засобах інформації.
Математична система позначень постійно розвивається, тому що люди постійно удосконалюють способи представлення ідей. Навіть стандартна система позначення арифметичних дій пройшла через дивовижне розмаїття стилів, включаючи безліч нині неіснуючих, що підтримують математичні позначення свого часу. Сучасна математична система позначень є продуктом вікових удосконалень, і прийняті позначення для високоякісного друку досить складні. Наприклад, змінні і букви, що позначають числа, зараз зазвичай друкуються спеціальним математичним курсивом трохи відмінним від звичайного текстового курсиву. Прогалини, що оточують символи операцій такі як +, -, × і /, трохи відрізняються від таких у тексті, відображаючи угоди про старшинство оператора. Цілі книги присвячені правилам набору математичних текстів, від вирівнювання верхніх і нижніх індексів до правил для вибору розмірів круглих дужок і спеціальних нотаціонних угод для різних галузей математики.
Прийнята система позначень в математиці, і в друкованому тексті взагалі, спрямована на те, щоб візуально виділити і зробити надруковані вираження більш легкими для читання та розуміння. Хоча це і здається очевидним, але ми покладаємося на сотні угод таких як параграфи, заголовні букви, сімейства шрифтів, і навіть механізм десяткової нумерації розділів, подібний до того, що ми використовуємо в цьому документі (заслуга G. Peano, який ймовірно більш відомий своїми аксіомами для натуральних чисел). Таким чином, нотаціонние угоди, напевно, навіть більш важливі для електронних медіа, де потрібно боротися з труднощами читання з екрану.
Однак, впровадження математики в Мережу це не просто пошук способів відображення математичної інформації у вікні браузера. Мережа являє фундаментально новий підхід до зберігання знань, в якому взаємозв'язок відіграє центральну роль. Стає все більш і більш важливо знайти способи взаємозв'язку математичних документів, які полегшать автоматичну обробку, індексацію і повторне використання в інших математичних програмах і контекстах. Подібні удосконалення в технології комунікації дозволяють розширити наші можливості у поданні та кодування математичного матеріалу. Ми сподіваємося, що MathML є важливим кроком у цьому напрямку.
1.2 Витоки та цілі
1.2.1 Історія MathML
Завдання подання математичної інформації для комп'ютерної обробки та електронних засобів комунікації виникла задовго до появи Інтернету. Раніше загальною практикою для вчених був запис статей у якомусь вигляді, заснованому на ASCII-символах і подальша пересилання їх один одному по електронній пошті. Кілька мов математичної розмітки, зокрема T E X, вже широко використовувалися в 1992 році, ще до того, як Мережа зайняла таке значуще становище.
З самого початку Мережа зарекомендувала себе, як дуже ефективний спосіб зробити інформацію доступною великій кількості людей. Однак, навіть при тому, що World Wide Web була спочатку задумана і реалізована вченими для вчених, можливості для включення математичних виразів в HTML були вкрай обмежені. В даний час, велика частина математичної інформації в Мережі представлена у вигляді тексту з графічними зображеннями наукових виразів (у форматі GIF або JPEG) або у вигляді цілих документів у форматі PDF.
Консорціум World Wide Web (W3C) розумів, що відсутність основ для наукової комунікації є серйозною проблемою. Вже в 1994 році Dave Raggett вніс пропозицію про включення HTML Math в прототип HTML 3.0. На конференції в Дармштадті в квітні 1995 року був проведений круглий стіл з математичної розмітці. У листопаді того ж року представники Wolfram Research висунули пропозицію команді W3C про реалізацію підтримки математики в рамках HTML. Важливу роль в об'єднанні багатьох зацікавлених сторін зіграла проведена в травні 1996 року зустріч Digital Library Initiative в Champaign-Urbana. Результатом цієї зустрічі стало формування редакційного наглядової ради з HTML Math. Згодом ця робоча група розрослася, і в березні 1997 року була формально повторно сформована як перша W3C Math Working Group. Друга W3C Math Working Group була сформована в липні 1998 року.
Проект MathML відображає інтереси і думки різних груп фахівців. Багато чого в розвитку MathML заслуговує спеціальної згадки. Наприклад, це стосується питання загальнодоступності, де були особливо відчутні труднощі. У цьому напрямку багато роботи виконав TV Raman. Neil Soiffer і Bruce Smith з Wolfram Research поділилися своїм досвідом у вирішенні проблем подання математичного матеріалу, накопиченим при роботі над проектом Mathematica 3.0. Їх ідеї мали важливий вплив на структуру елементів подання. Paul Topping з Design Science також вніс свій внесок у математичне форматування та редагування. Багато користі витягнув MathML з партнерства з низкою членів робочих груп, пов'язаних з іншими роботами з кодування математичної інформації в SGML і в громадах комп'ютерної алгебри. из Stilo Technologies , Nico Poppelier из Elsevier Science St é phane Dalmas из INRIA ( Sophia Antipolis ), Stan Devitt из Waterloo Maple , Angel Diaz и Robert S . Sutor из IBM , и Stephen M . Watt из University of Western Ontario . У їх числі Stephen Buswell з Stilo Technologies, Nico Poppelier з Elsevier Science St é phane Dalmas з INRIA (Sophia Antipolis), Stan Devitt з Waterloo Maple, Angel Diaz і Robert S. Sutor з IBM, і Stephen M. Watt з University of Western Ontario. Також, на MathML вплинув проект OpenMath, робота робочої групи ISO 12083 і робота Stilo Technologies над фрагментом DTD для 'семантичної' математики. Американське математичне товариство відігравало ключову роль у розвитку MathML. Крім іншого, головами обох W3C Math Working Group стали представники цієї організації. З травня 1996 по березень 1997 року групу вів Ron Whitney. Patrick Ion був співголовою групи з березня 1997 по червень 1998 разом з Robert Miner з The Geometry Center, а з липня 1998 разом з Angel Diaz з IBM.
1.2.2 Обмеженість HTML
Попит на ефективні засоби обміну науковою інформацією залишається як і раніше високим. Все більше і більше дослідників, вчених, інженерів, вчителів, студентів, працюючи в різних місцях земної кулі, покладаються на електронні засоби комунікації. У теж час, методи поширення наукової нотації, засновані на графічному поданні, що переважають зараз в Мережі, примітивні і неадекватні. Якість документів залишає бажати кращого, створення - складно, а математична інформація, що міститься в картинках, не доступна для пошуку, індексації та повторного використання в інших додатках.
Існує дві основні проблеми з використанням HTML.
Проблема відображення.
=10. Розглянемо рівняння 2 лютого x = 10. Розміри зображення підібрані так, щоб відповідати навколишнього тексту розміру 14 pt в системі, де воно було створено. Природно, що в інших системах або при іншому розмірі тексту рівняння буде виглядати не так, як задумував автор. Крім того, зображення з цим рівнянням створювалося в припущенні, що у документа буде білий фон. Таким чином, якщо читач або браузер встановить інший колір сторінки, то в результаті навколо тексту виникне білий "ореол". Далі розглянемо рівняння
,
яке служить прикладом вирівнювання горизонтальної осі зображення по верху малих літер у навколишньому тексті. У цьому рівнянні присутній знаменник, і базисна лінія розташовується на відстані близько однієї третини від низу зображення. Це рівняння, наприклад, можна розмістити так:
,
тобто так, щоб горизонтальна вісь зображення і базисна лінія рівняння збігалися, але це призведе до проблем з міжстроковими інтервалами. У результаті цього текст стане важко читаються. Крім того, вертикальне вирівнювання по центру відрізняється в різних браузерах, роблячи неможливим гарантувати правильне розташування формул для різних користувачів.
Рівняння, оформлені у вигляді зображень, звичайно важче сприймати, ніж навколишнє текст. Більш того, ці проблеми тільки збільшуються, якщо документ надрукувати. Дозвіл зображень близько 70 точок на дюйм, тоді як навколишній текст зазвичай має 300, 600 або більше точок. Така різниця в якості неприйнятна для більшості людей.
Проблеми кодування. Спробуємо знайти в цьому документі фрагмент, наприклад, '= 10' першого рівняння вище. Або спробуємо скопіювати і вставити рівняння в іншу програму, більше того, спробуємо скопіювати і вставити тільки частина рівняння. При використанні методів, заснованих на графічному поданні, жодна з цих завдань не може бути вирішена. - документы должны предоставлять более продвинутый интерфейс между браузерами и математической информацией. І хоча використання атрибуту alt в документі може трохи допомогти, ясно, що інтерактивні web - документи повинні надавати більш просунутий інтерфейс між браузерами і математичної інформацією.
Інша проблема використання зображень для математичних об'єктів - необхідність високої пропускної спроможності каналу зв'язку. Представлення рівняння розміткою зазвичай менше за обсягом і краще стисливі в порівнянні з поданням у вигляді зображення. Крім того, при використанні розмітки для запису рівнянь велика частина роботи по відображенню перекладається на клієнтську машину.
1.2.3 Вимоги до математичної розмітці
Деякі проблеми, пов'язані з включенням математичних виразів в HTML-документ у вигляді зображень, можуть бути вирішені за допомогою поліпшення обробки останніх браузерами. Хоча, навіть якщо таке й станеться, залишиться проблема доступу до інформації, що міститься в математичних виразах з інших додатків. Тому, в майбутньому, поліпшення методів, заснованих на графічному поданні неперспективно. Для повної інтеграції математичного матеріалу в web-документ необхідно подання математичної нотації за допомогою мови розмітки.
При створенні будь-якої мови розмітки необхідно ретельно врахувати потреби його потенційних користувачів. У випадку з MathML область застосування простирається від сфери освіти до сфери досліджень і навіть бізнесу.
Сфера освіти є великою і важливою областю, в якій повинна бути забезпечена можливість розміщення в Мережі наукових матеріалів для занять. -документов. У той же час, викладачі обмежені в часі і обладнанні, і зазвичай зупиняються перед складністю створення технічних web-документів. Студенти і викладачі повинні мати можливість швидко і легко створювати математичні документи, використовуючи інтуїтивно зрозумілі, легкі для вивчення і "дешеві" інструменти.
Електронні підручники - інший спосіб використання Мережі, який потенційно дуже важливий для освіти. Відомий фахівець з управління Peter Drucker прогнозував кінець епохи побудови системи вищої освіти навколо великих університетських містечок і початок її розповсюдження через Мережу. Електронні підручники мають бути більш інтерактивними і дозволяти пов'язувати текст з науковим програмним забезпеченням.
Академічні та комерційні дослідницькі групи постійно випускають велику кількість наукового матеріалу. Все більше і більше наукових публікацій розміщується в базах даних, таких як досить відомий архів препринтів з фізики і математики Національної Лабораторії у Лос-Аламосі (Los Alamos). Особливо це відноситься до деяких областях фізики і математики, де ціни на академічні журнали вельми високі. До того ж, бази даних з інформацією про математичних дослідженнях, такі як Mathematical Reviews і Zentralblatt f ür Mathematik, пропонують величезну кількість посилань на що містяться в Мережі математичні документи.
Для відповідності вимогам дослідницького співтовариства, мова математичної розмітки має спростити обслуговування і роботу з великими обсягами документів, де вкрай важливі автоматичний пошук і індексація. З-за великої кількості вже існуючих математичних документів, особливо у форматі T E X, також важливо мати можливість конвертації між існуючими форматами і будь-яким новим. І нарешті, для наукових досліджень життєво необхідна можливість зберігати інформацію в архівах.
Багато вчених і інженери використовують у своїй роботі технічні документи для обміну та запису результатів експериментів, а також для комп'ютерного моделювання та перевірки проведених обчислень. Для такого роду використання методи розміщення математичної інформації в Мережі повинні надавати стандартний спосіб спільного її використання так, щоб можна було легко її прочитати, обробити і створювати з використанням доступних і простих інструментів.
Інша загальна вимога полягає в можливості відображення математичного матеріалу в інших інформаційних середовищах, таких як мова або шрифт Брайля, які є вкрай важливими для людей з порушенням зору.
Комерційні видавництва також зацікавлені в просуванні методів представлення математичної інформації в Мережі в різному вигляді від електронних версій звичайних книг до інтерактивних підручників і академічних журналів. Видавництвам потрібно такий спосіб розміщення математичних документів у Мережі, який би мав можливість для високоякісного виводу, був застосований для великомасштабного комерційного використання і, по можливості, сумісний зі старими системами, зокрема, на основі SGML.
1.2.4 Цілі проекту MathML
Для відповідності різним вимогам наукового співтовариства MathML розроблявся з урахуванням таких умов.
MathML повинен:
Представляти математичний матеріал так, щоб він підходив для навчання та наукової комунікації будь-якого типу.
Представляти як математичну нотацію, так і математичний зміст.
Забезпечувати можливість перетворення між ним та іншими математичним форматами, як презентаційними, так і семантичними. Формати виводу повинні включати:
графічне відображення
синтезатори мови
формати систем комп'ютерної алгебри
формати інших мов, таких як T E X
відображення у вигляді простого тексту, наприклад, емулятори VT100
пристрої для друку, включаючи працюючі зі шрифтом Брайля
Зрозуміло, що такі перетворення можуть привести до деякої втрати інформації.
Мати можливість включення інформації, необхідної для певних засобів відображення і інших додатків.
Підтримувати коректний перегляд довгих виразів.
Забезпечувати розширюваність.
Підтримувати шаблони та інші засоби редагування математичної інформації.
Бути зрозумілим людині і простим для програмної обробки.
У незалежності від того, наскільки вдалий MathML як мова розмітки, він буде корисний тільки у випадку грамотного його застосування. W3C Math Working Group визначила короткий список додаткових цілей його реалізації. У ньому коротко описана мінімальна функціональність, яку повинні забезпечувати програми відображення і обробки MathML.
Вирази MathML всередині сторінок HTML (і XHTML) повинні коректно відображатися в найбільш поширених браузерах відповідно до настанов читача і автора, при цьому повинне забезпечуватися якість, максимально досяжний на даній платформі.
Документи HTML (і XHTML), що містять висловлювання MathML, повинні коректно виводитися на друк з високою роздільною здатністю.
Вирази MathML, включені до web-сторінки, повинні реагувати на дії користувача, такі як робота з мишею, і здійснювати взаємодію з іншими додатками через браузер.
Редактори і конвертери математичних виразів повинні розроблятися з урахуванням можливості створювати web-сторінки, що містять висловлювання MathML.
Найближчим часом для вирішення проблеми відображення планується використовувати вбудовані елементи, такі як Java-аплети, плагіни і елементи управління ActiveX. Проте обсяг, в якому буде це реалізовано, залежить від співпраці і підтримки виробників браузерів та іншого програмного забезпечення. W3C Math Working Group продовжує роботу з робочими групами по Document Object Model (DOM) і Extensible Style Language (XSL), щоб гарантувати, що потреби наукового співтовариства будуть задоволені в майбутньому. Ясно, що MathML 2.0 є значним кроком вперед у порівнянні з MathML 1.0 Recommendation (Квітень 1998).
1.3 Роль MathML в Мережі
Цілі розробки MathML вимагають гнучкою і розширюваної системи запису математичного матеріалу, що дозволяє взаємодіяти із зовнішніми програмами та здійснювати високоякісне відображення в різних інформаційних середовищах. Але будь-яку мову розмітки, що задовольняє всім цим вимогам, досить складний.
-страницы. У той же час, для багатьох груп користувачів, наприклад, студентів, важливо мати простий шлях для включення математичних виразів у web-сторінки. -страницы разметки при помощи языка, подобного T E X. Аналогічно, для інших груп, наприклад, для користувачів системи T E X, кращим рішенням була б система, що дозволяє безпосереднє включення в web-сторінки розмітки за допомогою мови, подібного T E X. Загалом, різним групам користувачів потрібні різні форми введення і виведення інформації, найбільш відповідні їхнім потребам. Отже, в ідеалі система для розміщення математичних документів у Мережі повинна надавати як спеціалізовані сервіси для введення і виведення, так і загальні сервіси для обміну інформацією та відображення в різних інформаційних середовищах.
На практиці, огляд того, що повинен забезпечувати математичний стандарт в мережі для спеціалізованих і загальних потреб, призводить до ідеї багаторівневої архітектури. Перший рівень включає стандартні потужні засоби обміну, обробки і відображення математичних даних. Другий рівень включає спеціалізовані інструменти, призначені для конкретних груп користувачів, за допомогою яких можна легко кодувати математичну інформацію для її поширення серед обмеженого кола користувачів.
MathML створений для розмітки математичної інформації на нижньому більш загальному рівнем дворівневої архітектури. Це передбачає розмітку складної нотаціонной та семантичної структури у строгій, регулярної формі, простий для обробки засобами відображення, пошуку і індексації, а також іншими математичними додатками.
Внаслідок цього, розмітка MathML не передбачає безпосереднього використання авторами. MathML зрозумілий для людини, що сильно допомагає при налагодженні, але у всіх випадках, за винятком найпростіших, він занадто складний для ручного кодування. Натомість автори повинні будуть використовувати спеціальні редактори формул, конвертори та інші спеціалізовані програмні засоби для створення документів MathML. В якості альтернативи, деякі програми відображення та системи підтримки математичних документів можуть перетворювати інші вхідні формати в MathML "на льоту".
У певному сенсі MathML аналогічний іншим низькорівневим комунікативним форматам, таким як мова PostScript, розроблений Adobe. Ви можете створювати PostScript-файли різними способами, в залежності від ваших потреб: експерти створюють і правлять їх вручну, автори створюють їх за допомогою текстових процесорів, дизайнери - програмами-ілюстраторами і так далі. Якщо у вас є PostScript-файл, ви можете поширити його серед дуже великої аудиторії, так як пристрої відображення PostScript, такі як принтери і програми для перегляду на екрані, широко доступні.
Однією з причин розробки MathML як мови розмітки загального комунікативного рівня є стимулювання розробки математичного програмного забезпечення Мережі верхнього рівня. MathML представляє спосіб координування зусиль розробників модулів програм для створення і відображення математичного матеріалу. Спрощуючи розробку функціональних частин великої системи, MathML може стимулювати розробку програм, які будуть дуже корисні потенційним користувачам.
Автори можуть створювати MathML-документи, використовуючи інструменти, краще підходять для їхніх потреб. Студенти можуть віддавати перевагу візуальні редактори формул, з можливістю зберігати блоки розмітки MathML в XHTML-файлі. -страницы и обработать. Дослідники можуть використовувати пакунки комп'ютерної алгебри, автоматично кодують математичну інформацію так, щоб колеги могли її взяти з web-сторінки і обробити. Видавці академічних журналів можуть використовувати програму, яка конвертує розмітку T E X в HTML і MathML. Незалежно від способу створення web-сторінки, яка містить MathML, стають доступні всі переваги загального комунікативного шару. Різні програми, що працюють з MathML, можуть бути використані для одного і того ж документа, щоб вивести його в систему відтворення мови і на друк, а також для введення в систему комп'ютерної алгебри і для управління ним як частиною великого архіву web-документів. Для високоякісного друку математичних документів у форматі MathML часто проводиться зворотна конвертація в стандартні системи верстки, включаючи T E X, який спеціально створений для цих цілей. Нарешті, можна очікувати, що в кінцевому рахунку MathML буде інтегрований в інші області, де зустрічаються математичні формули, такі як електронні таблиці, пакети статистичної обробки даних і засоби інженерної розробки.
W3C Math Working Group співпрацює з різними софтверними компаніями для гарантії того, що скоро з'являться різні програми для роботи з MathML, включаючи як засобу створення документів, так і їх відображення. Поточний список програм, що працюють з MathML розташований на сторінці Math World Wide Web Consortium.
Початкова концепція HTML Math полягала в тому, щоб просто розширити набір тегів HTML і таким чином забезпечити безпосередню інтерпретацію в браузері. Однак ще до цього лавиноподібне зростання мережі зробив зрозумілим, що потрібно глобальний механізм розширень, а математична інформація є тільки одним з типів структурованих даних, які можуть бути інтегровані в Мережу за допомогою такого механізму.
-средой. За умови, що MathML має інтегруватися в Мережу як розширення, дуже важливо, щоб MathML і використовують його програми могли добре взаємодіяти з існуючою web-середовищем. Зокрема, MathML повинен розроблятися з урахуванням трьох типів взаємодії. По-перше, для створення математичного контенту важливо, щоб існуючі мови математичної розмітки могли бути перетворені в MathML, і щоб в існуючі редактори була додана можливість створення документів MathML. -приложений, которые сейчас работают с HTML. По-друге, повинно забезпечуватися можливість вставляти розмітку MathML в розмітку HTML, як її доповнення, в цьому випадку, в майбутньому, вона буде доступна для браузерів, пошукових систем і всіх типів web-додатків, які зараз працюють з HTML. І, нарешті, повинна забезпечуватися можливість відображення MathML, вбудованого в HTML, сучасними браузерами, навіть якщо результат буде далекий від ідеалу. З переходом від HTML до XHTML всі перераховані вище вимоги стануть ще більш необхідними.
World Wide Web повністю інтернаціональний. Математика - мова, що використовується у всьому світі. Математична нотація в науці і техніці тісно пов'язана з національними мовами. W3C прагне бути конструктивною силою у поширенні комунікативних можливостей у світі. Тому розробники MathML зіткнулися з проблемою інтернаціоналізації. Невідомо про несумісність цієї версії MathML з мовами з написанням зліва направо. Запис зліва направо є стандартною в MathML 2, і зрозуміло, що потреба в запису математичних формул в текстах на деяких національних мовах ще не виникала. Так звана "двунаправленная технологія" тільки розробляється, і краща підтримка формул в цьому контексті - завдання майбутніх розробок.
1.3.1 Існуючі мови математичної розмітки
Можливо, найбільш значущий вплив на мови математичної розмітки останніх двох десятиліть зробила система верстки T E X, розроблена Дональдом Кнутом (Donald Knuth). T E X є стандартом de facto в математичному співтоваристві, і взагалі широко поширений серед учених. T E X встановлює стандарт якості для візуалізації документів, і багато зусиль було докладено, щоб MathML міг забезпечити таку ж якість. Більше того, так як існує безліч документів у форматі T E X, і багато людей, які працюють з нею, основною при створенні MathML була можливість конвертації документів з формату T E X у формат MathML. Можливість такої конвертації була продемонстрована експериментальними програмами.
Велика робота з кодування математичного матеріалу була також виконана в співтоваристві SGML, і засновані на SGML схеми кодування широко використовуються комерційними видавцями. ISO 12083 - важлива мова розмітки, що містить фрагмент DTD спочатку призначений для опису візуального представлення математичної нотації. Так як математична нотація ISO 12083 та її похідні мають багато спільного з T E X, і так як SGML більш регулярний і структурований, ніж T E X, багато чого з того, що зроблено для сумісності MathML з T E X, також добре застосувати до ISO 12083.
MathML також приділяє велику увагу сумісності з іншими математичними програмами і, зокрема, з системами комп'ютерної алгебри. Багато елементів подання MathML частково засновані на механізмі друкованих боксів (typesetting boxes). Елементи змісту MathML багато в чому запозичені з проекту OpenMath і роботи Stilo Technologies зі створення математичного DTD. Проект OpenMath був тісно пов'язаний з спільнотами SGML та комп'ютерної алгебри. У цьому проекті були запропоновані SGML і XML-засновані способи взаємодії між пакетами математичних програм. Можливість створення та інтерпретації MathML в системах комп'ютерної алгебри була продемонстрована експериментальними програмами.
1.3.2 Механізм розширення HTML
Як зазначено вище, успіх HTML привів до спроб інтеграції в Мережу різних типів даних та програм. Кожен новий формат або додаток потенційно накладав нові вимоги на HTML і виробників браузерів. Через деякий час стало зрозуміло, що необхідний загальний механізм для інтеграції нових розширень в HTML. Спочатку, робоча група почала роботу з ідеєю про простому розширенні HTML в дусі перших спроб реалізації підтримки математики в HTML 3.2 Але при найближчому розгляді, це виявилося не такою вже й гарною ідеєю. До моменту початку робіт над MathML, XML став домінуючим механізмом загальних розширень.
расшифровывается как eXtensible Markup Language . XML розшифровується як eXtensible Markup Language. Він створений як спрощена версія SGML, метамови, використовуваного для визначення граматики та синтаксису HTML. Одна з цілей XML - можливість застосування в Мережі, і в даному випадку він може бути розглянуто як загальний механізм розширень HTML. Як випливає з його назви, розширюваність - основна риса XML. Автори отримали можливість оголошувати і використовувати нові елементи й атрибути. У той же час, правила граматики та синтаксису XML вимагають забезпечення регулярної структури документа для реалізації автоматичної обробки та супроводу великих об'ємів документів. Строго кажучи, XML є зручним способом опису деревовидних структур і, таким чином, може використовуватися в якості мови розмітки.
До моменту утворення першого W3C Math Working Group XML вже мав широку підтримку серед фірм-розробників, включаючи основних виробників браузерів. Глобальний перехід від HTML до XML важливий для W3C. Проміжним результатом роботи в цьому напрямку стала поява рекомендації XHTML, яка визначає нову модульну форму HTML. MathML може розглядатися як один з модулів, який дуже добре відповідає нового формату XHTML.
Крім того, інші XML-додатки для всіх видів публікації та обробки документів обіцяють стати все більш і більш поширеними. Отже, як з теоретичної так і з практичної точки зору, було б логічно визначити MathML як XML-додаток.
1.3.3 Механізм розширення браузера
До теперішнього часу деталі загальної моделі для відображення та обробки XML-розширень в HTML в основному ясні, на відміну від ситуації, коли була прийнята MathML 1.0 Recommendation. Передбачається, що властивості форматування (Formatting Properties), розроблені Cascading Style Sheets і Formatting Properties Working Group для CSS і доступні через Document Object Model (DOM), будуть застосовуватися для елементів MathML, щоб отримати стилістичний контроль над поданням MathML. Подальша розробка властивостей форматування проводиться всередині робочих груп CSS & FP і XSL.
На даний момент механізми таблиць стилів не здатні забезпечити безпосереднє відображення MathML браузером, тому необхідно розширити можливості браузерів, використовуючи вбудовані об'єкти (embedded elements) для відображення MathML. Вже можливо використовувати в браузері вбудований обмежений механізм відображення для обробки вбудованої XML-розмітки, такий як MathML, і забезпечувати взаємодію її з навколишнім web-сторінкою, проте, результати поки не повністю відповідають побажанням.
Для спеціалізованої обробки, такий як зв'язок з системами комп'ютерної алгебри, можливість зовнішнього виклику інших програм залишиться особливо необхідною. Для того щоб складну взаємодію між браузерами і вбудованими об'єктами було задовільним, необхідно визначити досить багату об'єктну модель документа. За цієї тесно причини W3C Math Working Group тісно співпрацює з Document Object Model (DOM) Working Group.
Для обробки вбудованих елементів і для багатостороннього зв'язку між науковим програмним забезпеченням модель таблиць стилів в деяких випадках далека від ідеалу. Це може накласти додаткові складності реалізації в системі, коли можна отримати деякі переваги, і це накладає вимоги до реалізації взаємодії між браузерами і вбудованими механізмами відображення, що, ймовірно, буде недоступне в найближчому майбутньому.
З цих причин специфікація MathML визначає атрибут-орієнтовану модель, яка показала себе в кількох незалежних додатках, як дуже ефективна для високоякісного відображення складних математичних виразів. Атрибути подання MathML, де це можливо, використовують властивості форматування W3C. Також, елементи MathML допускають атрибути class, style і id для забезпечення сумісності з традиційними таблицями стилів CSS. Однак, в даний час, є трохи реалізацій, де технологія CSS використовується при відображенні MathML.
Використання механізму стильових таблиць CSS вже згадувалося вище. Механізми XSL також нещодавно стали доступні для перетворення XML-документів у формат відображення. Дійсно, альтернативні варіанти цієї рекомендації, включаючи визначальну HTML-версію, були отримані з XML-джерела, використовуючи засоби мови трансформацій XSL. Оскільки розробки в цьому напрямі доступні для MathML, очікується, що їх використання стане домінуючим методом стилістичного контролю поданням MathML, який пропонується для використання в відображають середовищах, які підтримують ці механізми.
1.4 Огляд MathML
Головною проблемою створення математичної мови розмітки для застосування в Мережі є необхідність задавати одночасно подання математичної нотації і зміст експонованих математичних ідеї або об'єкта.
Ставлення математичної нотації і математичної ідеї - тонка річ. Формально, математична логіка піднімає питання про відповідність між системами символьної логіки і явищами, які вони моделюють. На інтуїтивному рівні, кожен, хто використовував математичну нотацію, знає як важливий правильний вибір нотації; символічна структура нотації пропонує структуру логічну. Наприклад, нотація Лейбніца для похідних пропонує ланцюг правил обчислення через символічні дробу.
Математики і вчителі дуже добре інтуїтивно відчувають це, частина їх роботи якраз і полягає у виборі нотації, яка підкреслює ключові аспекти проблеми і приховує або зменшує несуттєві. У математиці дуже часто пишуть що-небудь, хоча суворе значення цього є зовсім іншим, тому що досвід показує, що це значно краще передає ідею на високому рівні, чим строгі деталі.
В інших випадках, математична нотація використовується для запису повного, точного значення властивостей математичного об'єкта. Математична нотація може бути приголомшливо суворої і при акуратному використанні повністю вільною від неоднозначності. Більш того, це відсутність неоднозначності робить можливим описати математичні об'єкти так, що вони можуть бути використані в комп'ютерних програмах, таких як системи комп'ютерної алгебри та системи відтворення мови. У ситуації, коли головним є взаємодія між додатками, деталі візуального представлення грають мінімальну роль.
MathML дозволяє авторам записувати як нотацію, що представляє математичний об'єкт, і саму математичну структуру об'єкта. Більше того, автори можуть змішувати обидва типи запису для визначення подання та змісту математичної ідеї. Частина, що залишилася цього розділу дає основне уявлення про те, як MathML може бути використаний для кожної з цих цілей.
1.4.1 Таксономія елементів MathML
Всі елементи MathML діляться на три групи: елементи уявлення, елементи змісту та інтерфейсні елементи.
Елементи подання описують візуально орієнтовану двомірну структуру математичної нотації. Типовим прикладом є елемент mrow, який зазвичай застосовується для позначення горизонтального ряду частин висловлювання, і елемент msup, який відзначає верхній індекс. Як правило, кожен елемент подання відповідає одному типу нотаціонной схеми, такий як ряд, верхній індекс, нижній індекс і так далі. Будь-яка формула складається з частин, які можуть складатися з найпростіших елементів таких як цифри, букви або інші символи.
Хоча попередній абзац пов'язаний з аспектом відображення математичної нотації, і, отже, розміткою подання, ті ж самі міркування про декомпозиції застосовні до абстрактних математичних об'єктів, а значить і розмітці змісту. Наприклад, в контексті розмітки змісту верхній індекс зазвичай позначає операцію потенціювання, що вимагає двох операндів: 'підстави' і 'показника'. Це ніяким чином не є збігом, оскільки зазвичай математична нотація тісно пов'язана з логічною структурою розглянутих математичних об'єктів.
Рекурсивна природа математичних об'єктів і нотації відображена в розмітці MathML. Більшість елементів подання та змісту містять в собі інші елементи MathML, що відповідають за частини, з яких рекурсивно побудований вихідний об'єкт. Первісна схема зазвичай називається батьківської, а частини - дочірніми. Загалом, вираження MathML можна представити у вигляді дерев, де кожен вузол відповідає елементу MathML, гілку під 'батьківським' вузлом відповідає 'дочірнім' вузлам, і листя дерева відповідають атомарним елементам нотації або змісту, таким як числа, символи і т.д.
Більшість елементів-листя в дереві вираження MathML або канонічні порожні елементи без тіла, або токени. Канонічні порожні елементи відображають символи в MathML, наприклад, це робить елемент змісту <plus/>. Токени - єдині елементи MathML, які можуть містити текстові дані. Текстові дані в MathML містять символи Unicode і спеціальні символьні конструкції, зроблені за допомогою елемента mglyph. Третім типом елементів-листя в MathML є коментарі, які використовуються для зберігання даних, формат яких відмінний від формату MathML.
Найбільш важливими токенами подання є mi, mn і mo, використовувані для представлення ідентифікаторів, чисел і операторів відповідно. Зазвичай ці елементи відображаються різними стилями: числа - прямим шрифтом, ідентифікатори - похилим, навколо операторів залишається додатковий вільний простір. У розмітці змісту міститься тільки три токена, ci, cn і csymbol, для ідентифікаторів, чисел і нових введених в документ символів відповідно. У розмітці змісту існують різні елементи для часто використовуваних функцій і операторів. Елемент apply застосовується для користувальницького розширення стандартного набору.
У термінах розмітки, більшість елементів MathML визначаються відкриває і закриває тегами, які обмежують вміст елемента. У разі токенів вміст є текстовими даними, в більшості інших випадків - розміткою дочірніх елементів. Елементи третьої категорії, звані канонічними порожніми елементами, що не потребують ніякого змісту і визначаються одиночним тегом виду <name/>. Прикладом може служити елемент <plus/> в розмітці змісту.
Давайте візьмемо для прикладу вираз (a + b) 2 і розглянемо на практиці описані вище принципи. Одним з варіантів розмітки подання для цього виразу буде такою:
<mrow>
<msup>
<mfenced>
<mrow>
<mi> a </ mi>
<mo> + </ mo>
<mi> b </ mi>
</ Mrow>
</ Mfenced>
<mn> 2 </ mn>
</ Msup>
</ Mrow>
Цей приклад демонструє використання різних елементів подання. Перший елемент, дуже широко використовуваний, це елемент mrow. Він використовується для позначення ряду даних з вирівнюванням по горизонталі. Дані, що містяться між тегами <mrow> і </ mrow> розглядаються як аргумент елемента mrow. Таким чином, в елементі mrow міститься цілий вираз. Як було відмічено раніше, більшість математичних виразів складаються з подвираженія. Ці подвираженія, у свою чергу, також містяться в елементі mrow. Наприклад, a + b також міститься в mrow.
Елемент mfenced використовується для обмеження формул різними типами дужок. За замовчуванням використовуються круглі дужки.
Зверніть увагу на використання елемента mi для відображення змінних a і b та елементу mo для виділення оператора +.
Елемент msup застосовується у виразах з верхніми індексами і має два аргументи: підстава (в нашому випадку (a + b)) і показник (у нашому випадку 2).
Розмітка утримання для того ж прикладу буде мати вигляд:
<mrow>
<apply>
<power/>
<apply>
<plus/>
<ci> a </ ci>
<ci> b </ ci>
</ Apply>
<cn> 2 </ cn>
</ Apply>
</ Mrow>
Елемент apply позначає застосування операції до вираження. У нашому прикладі застосовуються пустий елемент power (для зведення в ступінь) і аналогічний елемент plus (для додавання). Зверніть увагу, що обидва оператори мають два аргументи. Але якщо у разі зведення в ступінь їх порядок важливий лише частково, то у випадку застосування apply він має ключове значення, так як перший дочірній елемент є оператором, приймаючим інші в якості аргументу.
Зверніть увагу на використання елемента ci для виділення змінних a і b, і елемента cn для виділення числа 2.
1.4.2 Розмітка подання
Розмітка подання MathML складається з приблизно 30 елементів, які мають більше 50 атрибутів. Більшість елементів являють собою схеми форматування, які містять в собі інші елементи уявлення. Кожна схема відповідає двовимірному фрагменту нотації, такому як верхній або нижній індекс, дріб або таблиця. Крім того, у розмітці подання є описані вище токени mi, mo і mn і кілька інших, які використовуються не так часто. Кілька елементів, що залишилися уявлення - це порожні елементи, пов'язані, в основному, з вирівнюванням.
Всі схеми форматування діляться на декілька класів. Одна група елементів відповідає за індекси і містить такі елементи, як msub munder, і mmultiscripts. Інша відповідає за більш загальне форматування і включає елементи mrow, mstyle і mfrac. Третя група реалізує роботу з таблицями. Елемент maction утворює ще одну категорію і дозволяє кодувати різні типи дій над нотацією, що зустрічаються у виразах, які toggles between two pieces of notation.
Схеми форматування володіють важливою властивістю: важливий порядок їх дочірніх елементів. Наприклад, перший дочірній елемент схеми mfrac є чисельником дробу, а другий - знаменником. Оскільки порядок дочірніх елементів не задається на рівні XML за допомогою MathML DTD, інформація про порядок доступна тільки препроцесора MathML, на відміну від загального препроцесора XML. Коли ми хочемо підкреслити, що елементи MathML, такі як mfrac, вимагають вказівки дочірніх елементів у певному порядку, ми розглядаємо їх як аргументи, а mfrac - як 'конструктор' нотації.
1.4.3 Розмітка змісту
Розмітка змісту містить близько 120 елементів, що приймають близько дюжини атрибутів. Більшість цих елементів - порожні, відповідні різним математичним операторам, залежностям і функцій. Як приклад можна навести partialdiff, leq і tan. Інші, такі як matrix і set, використовуються для представлення різних типів математичних даних. Третя важлива категорія елементів розмітки змісту, така як apply, використовується для застосування до виразів операцій та створення нових математичних об'єктів.
Можливо, одним з найбільш важливих елементів змісту є apply. Він використовується для застосування функції або операції до набору аргументів. Тут також важливо положення дочірніх елементів: перший дочірній елемент вказує застосовувану функцію, решта - аргументи у відповідному порядку. Треба відзначити, що конструкція apply завжди використовує префіксной нотацію, як мова програмування LISP. Зокрема, навіть бінарні оператори, такі як віднімання, описуються застосуванням префіксного оператора вирахування до двох аргументів. - b будет описано так: Наприклад, a - b буде описано так:
> <Mrow>
> <Apply>
/> <Minus />
> a </ ci > <Ci> a </ ci>
<ci> b </ ci>
</ Apply>
</ Mrow>
Багато функцій і операції, для того щоб чітко визначеними, вимагають одного або кількох кванторів. Наприклад, крім підінтегральна вираження у певного інтеграла повинні бути задані межі інтегрування і мінлива, за якою відбувається інтегрування. З цієї причини існує кілька схем-специфікатором начебто bvar і lowlimit. Вони використовуються з операторами diff і int.
Конструкція declare особливо важлива для розмітки змісту, яка може оброблятися системами комп'ютерної алгебри. Елемент declare реалізує основний механізм привласнення, коли може бути оголошена змінна певного типу з певним значенням.
І в прикладах розмітки подання, і в прикладах розмітки змісту математичні вирази рекурсивно розкладаються на вкладені, більш прості елементи MathML, визначають стадію декомпозиції. У наступному розділі це проілюстровано на більш складних прикладах.
1.4.4 Об'єднання подання та змісту
Для різних типів завдань різні типи розмітки можуть бути найбільш підходящими. Документи, створені до широкого розповсюдження Мережі, дуже часто призначені тільки для візуального обміну інформацією і найкращим чином перетворюються в чисту розмітку уявлення, так як семантична інформація, яку мав на увазі автор, може бути відновлена тільки евристично. Навпаки, деякі математичні програми та засоби навчання засновані на утриманні. Більшість же додатків перебувають посередині між цими крайнощами. Для них найбільш підходящим варіантом є об'єднання розмітки подання та змісту.
Правила об'єднання розмітки подання та змісту слідують із загального принципу, що змішана розмітка може бути тільки в тих місцях, де вона дійсно необхідна. Для розмітки змісту, вбудованої в розмітку вистави, це означає, що будь-які фрагменти змісту повинні бути семантично значущими і не вимагати додаткових аргументів чи кванторів для того, щоб бути чітко визначеними. Для розмітки подання, вбудованої в розмітку змісту, це означає, що розмітка подання повинна міститися в токені розмітки змісту як неподільний елемент, що використовується в якості імені змінної або функції.
Інший спосіб полягає у використанні елемента semantics. Він використовується для зв'язування виразів MathML і різних типів приміток. Найчастіше елемент semantics використовується для того, щоб приєднати фрагмент розмітки змісту до розмітки уявлення як семантичне примітка. Таким чином, автор може визначити нестандартну нотацію, яка буде використовуватися при відображенні конкретного вираження. Іншим застосуванням елемента semantics є включення інших семантичних специфікацій, таких як OpenMath вираження, у вирази MathML. У цьому випадку, елемент semantics може бути використаний для розширення розмітки змісту MathML.
1.5 MathML в документах
Все вищесказане відноситься до окремих формулами поза контекстом документа. Давайте детально розглянемо приклад, відповідний приклад "Hello, World!", Разбираемому при вивченні мов програмування. Ми представимо повний код документа XHTML 1.0, що містить розглянутий вище квадрат суми двох змінних:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml: lang="en">
<head>
<title> MathML's Hello Square </ title>
</ Head>
<body>
<p> This is a perfect square: </ p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup>
<mfenced>
<mrow>
<mi> a </ mi>
<mo> + </ mo>
<mi> b </ mi>
</ Mrow>
</ Mfenced>
<mn> 2 </ mn>
</ Msup>
</ Mrow>
</ Math>
</ Body>
</ Html>
Це стандартна структура документа XHTML. Він починається відкриває тегом <html>, що містить декларацію простору імен XML і оголошення мови. Елемент