Class MathMLReader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<MathMLDocument>
org.episteme.core.mathematics.loaders.mathml.MathMLReader
All Implemented Interfaces:
ResourceIO<MathMLDocument>, ResourceReader<MathMLDocument>

public class MathMLReader extends AbstractResourceReader<MathMLDocument>
MathML Reader for Content and Presentation MathML.

MathML (Mathematical Markup Language) is the W3C standard for representing mathematical notation and content. This reader supports both Content MathML (semantic structure) and Presentation MathML (visual rendering).

Supported MathML 3.0 Elements:

  • Presentation: mi, mn, mo, mrow, mfrac, msqrt, mroot, msub, msup, etc.
  • Content: apply, ci, cn, csymbol, plus, times, integral, etc.
  • Matrices: vector, matrix, matrixrow
  • Functions: sin, cos, exp, ln, log, and all trigonometric variants
  • Sets: set, list, union, intersect
  • Calculus: int, diff, partialdiff, limit
  • Logic: and, or, not, implies, forall, exists

Example:

MathMLReader reader = new MathMLReader();
MathMLDocument doc = reader.read(new File("equation.xml"));
MathMLMathElement math = doc.getMathElement();

* @see W3C MathML
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • MathMLReader

      public MathMLReader()
  • Method Details

    • getResourcePath

      public String getResourcePath()
      Description copied from interface: ResourceIO
      Returns the base path where this resource is located.
    • getResourceType

      public Class<MathMLDocument> getResourceType()
      Description copied from interface: ResourceIO
      Returns the type of resource.
    • getName

      public String getName()
      Description copied from interface: ResourceIO
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Returns:
      the display name
    • getDescription

      public String getDescription()
      Description copied from interface: ResourceIO
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the description
    • getLongDescription

      public String getLongDescription()
      Description copied from interface: ResourceIO
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the long description
    • getCategory

      public String getCategory()
      Description copied from interface: ResourceIO
      Returns the category for grouping. MUST be implemented with I18N support.
      Returns:
      the category name
    • getSupportedVersions

      public String[] getSupportedVersions()
      Description copied from interface: ResourceIO
      Returns the supported versions of the format this reader/writer handles.

      Each implementation MUST override this method to declare which versions of the underlying format are supported. The returned array should contain version strings in the format's standard notation (e.g., "3.0", "2.1", "Level 3 Version 2").

      Examples:

      • MathML: {"3.0", "2.0"}
      • SBML: {"Level 3 Version 2", "Level 3 Version 1", "Level 2 Version 5"}
      • PhyloXML: {"1.10", "1.00"}

      Returns:
      array of supported version strings, never null (empty array if version-agnostic)
    • getSupportedExtensions

      public String[] getSupportedExtensions()
      Description copied from interface: ResourceIO
      Returns the supported file extensions (e.g., ".h5", ".fits").
    • loadFromSource

      protected MathMLDocument loadFromSource(String resourceId) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<MathMLDocument>
      Throws:
      Exception
    • loadFromInputStream

      protected MathMLDocument loadFromInputStream(InputStream is, String id) throws Exception
      Overrides:
      loadFromInputStream in class AbstractResourceReader<MathMLDocument>
      Throws:
      Exception
    • read

      public MathMLDocument read(InputStream input) throws MathMLException
      Reads a MathML document from an input stream.
      Parameters:
      input - the input stream containing MathML data
      Returns:
      the parsed MathML document
      Throws:
      MathMLException - if parsing fails
    • read

      public MathMLDocument read(File file) throws MathMLException
      Reads a MathML document from a file.
      Parameters:
      file - the file containing MathML data
      Returns:
      the parsed MathML document
      Throws:
      MathMLException - if parsing fails
    • readFromString

      public MathMLDocument readFromString(String mathml) throws MathMLException
      Reads a MathML document from a string.
      Parameters:
      mathml - the MathML content as a string
      Returns:
      the parsed MathML document
      Throws:
      MathMLException - if parsing fails