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ęć.

Zobacz też

Linki zewnętrzne