Введение
OpenMath — это язык разметки, предназначенный для определения смысла математических формул. В частности, он может использоваться для расширения MathML, стандарта, ориентированного главным образом на представление формул, информацией об их семантике. OpenMath может быть представлен в формате XML или в двоичном формате.
Покрытие
OpenMath состоит из определения «Объектов OpenMath», являющегося абстрактным типом данных для описания логической структуры математической формулы, и определения «Словари содержимого OpenMath» – коллекций имен для математических понятий. Имена, доступные в последних типах коллекций, специально предназначены для расширения MathML, и, наоборот, базовый набор таких «Словари контента» был разработан для совместимости с небольшим набором математических понятий, определенных в Content MathML, непредставительском подмножестве MathML.
История
OpenMath был разработан в ходе серии семинаров и (преимущественно европейских) исследовательских проектов, начатых в 1993 году и продолжающихся по сей день. Стандарт OpenMath 1.0 был выпущен в феврале 2000 года и пересмотрен как OpenMath 1.1 в октябре 2002 года. Два года спустя, в июне 2004 года, был выпущен стандарт OpenMath 2.0. OpenMath 1 закрепил базовую архитектуру языка, а OpenMath 2 обеспечил лучшую интеграцию с XML, совместное использование структур и расширил понятие словарей OpenMath Content.
Общество OpenMath
Усилия OpenMath координируются организацией OpenMath Society, расположенной в Хельсинки, Финляндия. Эта организация объединяет разработчиков инструментов, поставщиков программного обеспечения, издателей и авторов. Членство в OpenMath Society осуществляется по приглашению Исполнительного комитета, который рассматривает самовыдвижения кандидатов, имеющих опыт работы с OpenMath в области исследований или практического применения. По состоянию на 2007 год президентом OpenMath Society является Майкл Кольхас, сменивший Арье М. Коэна, который был первым президентом организации.
Словари содержимого OpenMath
Словари содержания — это структурированные XML-документы, определяющие математические символы, на которые могут ссылаться элементы OMS в объектах OpenMath. Стандарт OpenMath 2 не предписывает каноническое кодирование для словарей содержания, а требует лишь инфраструктуры, достаточной для однозначной идентификации в элементах OMS. OpenMath предоставляет очень простую XML-кодировку, отвечающую этим требованиям, а также набор конкретных словарей содержания для некоторых областей математики, в частности, охватывающих фрагмент K-14, соответствующий содержанию MathML. Для более структурированных словарей содержания (и, как правило, для произвольных математических документов) формат OMDoc расширяет OpenMath посредством "уровня утверждений" (включающего структуры, такие как определения, теоремы, доказательства и примеры, а также средства для установления связей между ними) и "уровня теорий", где теория представляет собой совокупность нескольких контекстуально связанных утверждений. Теории OMDoc разработаны для совместимости со словарями содержания OpenMath, но также могут быть связаны отношениями наследования и импорта.
Критика
OpenMath критикуют за неспособность адекватно представлять общую математику, за недостаточную формальную точность для отражения сложности численных методов, отсутствие практической реализации и за технологическую уступаемость уже зарекомендовавшим себя подходам кодирования математической семантики, наряду с другими предполагаемыми недостатками.