Changes between Version 6 and Version 7 of Ticket #19970


Ignore:
Timestamp:
07/12/18 09:09:34 (10 months ago)
Author:
slelievre
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #19970 – Description

    v6 v7  
    1 !OpenMath is a W3C standard for representing mathematical objects in xml format (or binary); the syntax and semantic for specific objects (polynomials, ...) is specified in content dictionaries, a standard collection of which is available on http://openmath.org .
     1!OpenMath is a W3C standard for representing mathematical objects in XML (or binary)
     2format; the syntax and semantic for specific objects (polynomials, ...) is specified in
     3"content dictionaries", a standard collection of which is available at http://openmath.org .
    24
    3 Support for !OpenMath serialization (importing from and exporting to !OpenMath) would improve the interoperability between !SageMath
    4 and other mathematics software (both ways: accessing other software from Sage, and accessing Sage from other software).
     5Support for !OpenMath serialization (importing from and exporting to !OpenMath) would
     6improve the interoperability between !SageMath and other mathematics software
     7(both ways: accessing other software from Sage, and accessing Sage from other software).
    58
    6 
    7 [[py-openmath|GitHub: https://github.com/OpenMath/py-openmath]] is an implementation of !OpenMath for Python; it provides
     9[[https://github.com/OpenMath/py-openmath|py-openmath]]
     10is an implementation of !OpenMath for Python; it provides
    811a data structure for !OpenMath expression trees (with serialization to from xml representation), together with converters between Python objects and !OpenMath expression trees. The default converter can handle basic Python objects (integers, lists, ...) exported using the standard !OpenMath content dictionaries. Additional conversions can be registered.
    912
    10 Installation of the [[https://pypi.org/project/openmath|package on Pypi]]:
     13To install py-openmath using the [[https://pypi.org/project/openmath|openmath package on Pypi]]:
    1114{{{
    12     sage -pip install openmath
     15sage --pip install openmath
    1316}}}
    1417
    15 
    16 To export more SageMath objects the standard approach would be to use
     18To export more !SageMath objects the standard approach would be to use
    1719the existing Content Dictionaries (or creating new ones if non existing), and manually implement the conversions for each type of Sage object.
    1820
    1921An alternative approach is to use py-openmath's generic serialization to !OpenMath. With it, any (picklable) Python object is converted to an !OpenMath expression describes how to reconstruct the object from basic Python objects and global functions; it's based on Python's pickle protocol, and can be seen as an alternative pickle format.
    2022
    21 See this [[https://github.com/OpenDreamKit/MitM-Sage#generic-system-near-openmath-export-for-python-and-sage-objects|demo]]
     23See this [[https://github.com/OpenDreamKit/MitM-Sage#generic-system-near-openmath-export-for-python-and-sage-objects|demo]].
    2224
    23 By construction, the resulting OpenMath is `system near`; importing or exporting from another system requires an additional translation step,
    24 using alignments. The hope is that decoupling the serialization and the translation steps makes it easier to maintain the conversions. This is being explored as part of the Math-in-the-Middle research project; see e.g. those [[https://opendreamkit.org/2017/10/15/WP6-Usecase/|papers]].
     25By construction, the resulting OpenMath is "system-near"; importing or exporting from another system requires an additional translation step,
     26using alignments. The hope is that decoupling the serialization and the translation steps makes it easier to maintain the conversions. This is being explored as part of the Math-in-the-Middle research project; see e.g.  [[https://opendreamkit.org/2017/10/15/WP6-Usecase/|these papers]].
    2527
    2628See also: #19971 "Provide an SCSCP interface".