OpenMath
OpenMath to nazwa języka znaczników do określania znaczenia formuł matematycznych . Między innymi można go wykorzystać do uzupełnienia MathML , standardu, który koncentruje się głównie na prezentacji formuł, o informacje o ich znaczeniu semantycznym. OpenMath może być zakodowany w XML lub w formacie binarnym.
Zasięg
OpenMath składa się z definicji „Obiektów OpenMath”, które są abstrakcyjnym typem danych do opisywania logicznej struktury formuły matematycznej oraz definicji „Słowników treści OpenMath”, czyli zbiorów nazw pojęć matematycznych. Nazwy dostępne w kolekcjach tego drugiego typu są specjalnie przeznaczone do użytku w rozszerzaniu MathML i odwrotnie, podstawowy zestaw takich „słowników treści” został zaprojektowany tak, aby był zgodny z niewielkim zestawem pojęć matematycznych zdefiniowanych w Content MathML, nie -prezentacyjny podzbiór MathML.
Historia
OpenMath został opracowany w ramach długiej serii warsztatów i (głównie europejskich) projektów badawczych, które rozpoczęły się w 1993 roku i trwają do dziś. Standard OpenMath 1.0 został wydany w lutym 2000 r., A poprawiony jako OpenMath 1.1 w październiku 2002 r. Dwa lata później, w czerwcu 2004 r., został wydany standard OpenMath 2.0. OpenMath 1 naprawił podstawową architekturę języka, podczas gdy OpenMath2 zapewnił lepszą integrację XML, udostępnianie struktury i zliberalizował pojęcie słowników treści OpenMath.
Towarzystwo OpenMath
OpenMath Effort jest zarządzany przez OpenMath Society z siedzibą w Helsinkach w Finlandii . Towarzystwo zrzesza konstruktorów narzędzi, dostawców oprogramowania, wydawców i autorów. Członkostwo odbywa się na zaproszenie Komitetu Wykonawczego Towarzystw, który z zadowoleniem przyjmuje zgłoszenia osób, które pracowały nad kwestiami związanymi z OpenMath w badaniach lub aplikacjach. Od 2007 roku Michael Kohlhase jest prezesem stowarzyszenia OpenMath. Zastąpił Arjeha M. Cohena, który był pierwszym prezydentem.
Przykład
Znany wzór kwadratowy :
byłby oznaczony w OpenMath w ten sposób (reprezentacja jest drzewem wyrażeń złożonym z elementów funkcjonalnych, takich jak OMA dla aplikacji funkcji lub OMV dla zmiennych):
<OMOBJ xmlns= "http://www.openmath.org/OpenMath" > <OMA cdbase= "http://www.openmath.org/cd" > <OMS cd= "relation1" name= "eq" /> <OMV nazwa= "x" /> <OMA> <OMS cd= "arith1" nazwa= "podziel" /> <OMA> <OMS cdbase= "http://www.example.com/mathops"
cd= "multiops" name= "plusminus" /> <OMA> <OMS cd= "arith1" name= "unary_minus" /> <OMV name= "b" /> </OMA> <OMA> <OMS cd= " arith1" nazwa= "root" /> <OMA> <OMS cd= "arith1" nazwa= "minus" /> <OMA>
<OMS cd= "arith1" nazwa= "moc" /> <OMV nazwa= "b" /> <OMI> 2 </OMI> </OMA> <OMA> <OMS cd= "arith1" nazwa= "razy" /> <OMI> 4 </OMI> < Nazwa OMV= "a" /> < Nazwa OMV= "c" /> </OMA>
</OMA> </OMA> </OMA> <OMS cd= "arith1" nazwa= "razy" /> <OMI> 2 </OMI> <OMV nazwa= "a" / > </OMA> </OMA> </OMA> </OMOBJ>
W drzewie wyrażeń powyżej symbole — tj. elementy takie jak <OMS cd="arith1" name="times"/> — oznaczają funkcje matematyczne, które są stosowane do równorzędnych wyrażeń w OMA , które są interpretowane jako argumenty. Element OMS jest ogólnym elementem rozszerzenia, który oznacza to, co jest określone w słowniku treści, do którego odnosi się atrybut cd (ten dokument można znaleźć pod URI określonym w najbardziej wewnętrznym atrybucie cdbase dominującym w odpowiednim OMS element. W powyższym przykładzie wszystkie symbole pochodzą ze słownika treści dla arytmetyki ( arith1 , patrz poniżej), z wyjątkiem plusminus , który pochodzi z niestandardowego miejsca, stąd atrybut cdbase .
Słowniki treści OpenMath
Słowniki treści to ustrukturyzowane dokumenty XML, które definiują symbole matematyczne, do których mogą odwoływać się elementy OMS w obiektach OpenMath. Standard OpenMath 2 nie zaleca kanonicznego kodowania słowników treści, a jedynie wymaga infrastruktury wystarczającej do unikatowych odwołań w elementach OMS. OpenMath zapewnia bardzo podstawowe kodowanie XML, które spełnia te wymagania, oraz zestaw słowników specyficznych treści dla niektórych dziedzin matematyki, w szczególności obejmujących fragment K-14 objęty treścią MathML.
W przypadku słowników o bogatszej strukturze (i ogólnie w przypadku dowolnych dokumentów matematycznych) format OMDoc rozszerza OpenMath o „poziom instrukcji” (w tym struktury takie jak definicje, twierdzenia, dowody i przykłady, a także sposoby ich wzajemnego powiązania) oraz „poziom teorii ”, gdzie teoria jest zbiorem kilku kontekstowo powiązanych stwierdzeń. Teorie OMDoc są zaprojektowane tak, aby były kompatybilne ze słownikami treści OpenMath, ale można je również ustawić w relacjach dziedziczenia i importu.
Krytyka
OpenMath jest krytykowany za to, że jest nieodpowiedni dla matematyki ogólnej, ujawniając niewystarczającą precyzję formalną, aby uchwycić zawiłości liczb, brak dowodu słuszności koncepcji i gorszą technologię w stosunku do już ustalonych podejść do kodowania semantyki matematycznej, wśród innych domniemanych niedociągnięć.