Roman Sachse wrote:
>
> Hello List
>
> For my Bachelors Thesis I am trying to store mathematical expressions in
> an ontology via content MathML.
>
> To be able to work with these expressions I need a parser (preferably
> Java) which is able to generate content MathML and more important is
> able to read MathML expressions, instantiates the variables and returns
> the result.
It might not be an exact match to what you want, but some of the CellML
tools might also interest you (or at least, parts of them). CellML is an
XML-based language for expressing mathematical models, and uses content
MathML to describe the equations. See http://www.cellml.org/ for more
information, and http://www.cellml.org/tools/ for information on tools.
PCEnv (written in C++ and Javascript) has a content MathML editor (based
on a text input language). "CellML Elite" (which is no longer
maintained, and is obsoleted by PCEnv) was written in Java, and had a
graphical content MathML editor. COR (which is closed source, and
developed at the University of Oxford, and is written in Delphi) also
allows content MathML in CellML models to be edited.
I'm not sure what sort of evaluation you expect, but both PCEnv and COR
can integrate systems of ordinary differential equations (PCEnv binary
distributions come with gcc, and PCEnv generates C code, and then
compiles this code and links it in. COR generates x86 machine code for
its simulations). You could probably take some code out of the C Code
Generation Service if you simply want to evaluate real numbers from
mathematical expressions of real-valued variables.
>
> Maybe I am completely blind but I was not able to find anything that
> satisfies my requirements.
>
> Actually these were my only findings:
> http://www.eteks.com/jeks/en/doc/com/eteks/parser/MathMLInterpreter.html
> (which does one part of the job, namely creating MathML output)
> and this question:
> http://lists.w3.org/Archives/Public/www-math/2006Apr/0060.html
> posted about a year ago.
>
> Is there no parser that can work with content MathML input or am I
> completely on the wrong track?
The PCEnv input language parser grammar is at
https://svn.physiomeproject.org/svn/physiome/pce/trunk/DataCollector/TextRepParse.y
. This uses the MathML API through a custom binding generated from the
W3C supplied IDLs, so you could probably re-use it quite easily. Even
if you don't use the code itself, it would be good to collaborate on the
input language, and hopefully start to establish some sort of standard
for user-friendly content-MathML input.
Best regards,
Andrew Miller