AI & IT UG - Software
07.05.2020 23:15

P2X

Universal parser with XML output. Configurable for arbitrary binary and unary operators and parentheses, it can easily parse any structured text. The output is XML, and also JSON or MATLAB, with some small limitations. Output for R is available via R2X.

In most cases it is advisable to devise a small pipeline of XSLT that transform the raw P2X output to something that looks more like what the text input is meant to represent, for example by using XML elements with appropriate names. You may also wish to use your own namespace. We believe in most cases these transformation are usually easily devised and implemented. In case of particular challenges you are always welcome to consult with us.

The repository is at https://github.com/rainac/p2x.

07.05.2020 22:55

R2X

Seamless R to XML bridge. XML documents are converted to named lists directly, so there is no need for the DOM library. This transformation is by XSLT. Likewise, named lists can be converted to the corresponding XML. This is possible with plain R alone, by printing the XML markup text.

R2X is the basis for a quick HTML report generator that we are using in our software.

The repository is at https://github.com/rainac/r2x.

07.05.2020 22:40

Org-to-XML

Emacs OrgMode files can be transformated to XML, thanks to a piece of Emacs Lisp software that we provide as open-source software.

Org-to-XML is used to generate these websites and it is the basis of the org-to-letter PDF generator.

The repository is at https://github.com/rainac/org-to-xml.

07.05.2020 22:33

R/ADR

Automatic differentiation for R. This package is written in R and provides the runtime and driver functions around the R/ADR AD transformation webservices. The package also includes a forward mode AD by operator overloading framework.

The R/ADR package can compute efficient gradients and Hessians via the reverse mode or adjoint of AD. With efficient we mean not as efficient as in a handwritten backpropagation routine of a neural network, which is a special case, but something in that order of magnitude, with a factor of maybe 5-20.

07.05.2020 22:10

R/ADR Transformation Server

AI & IT provides the webservices located at https://r-adr.de/ that generate the AD code used by the R/ADR package:

  • r-ad-fm

    R function transformed in forward mode of AD. This is the source of the d operator in R/ADR

  • r-ad-rm

    R function transformed in reverse mode of AD. This is the source of the adj operator in R/ADR

Both are based on the XML returned by

  • r-lang-xml

    R code in XML format

All of these transformations are a part of our OPX services, and hence the generic means of accessing the server are also available.

07.05.2020 21:55

OPX Transformation Server

OPX is a server running numerous text and XML based data processing and transformation services. Each is either XML to XML, XML to text, or text to XML. When the transformation is text to text it is a composition of three others, and the XML that is used internally for the transformation is provided as an alternative XML based representation of the text.

Some examples for text formats that we can transform to XML are:

  • r-lang-xml

    R code to XML

  • math-xml

    Unicode mathematical expressions to Content MathML

  • Julia code to XML (experimental)

  • MATLAB code to XML (experimental)

Examples for text data formats are

  • CSV-Files (experimental)

  • Ini-Files

These transformations are often based on our P2X universal text parser software.

For the target XML format there is in each case an unparser, or pretty-printing server.

Semantical transformations are available for the code representations, such as:

  • AD transformation for R functions, implementing the R/ADR Transformation Server

  • math-diff

    Differentiation transformation for MathML

  • math-diff-text

    Differentiation transformation for mathematical expressions

  • AD transformation for Julia (experimental)

  • AD transformation for Python (experimental)

  • Neural network transformations (experimental)

For Ini-Files we provide win-ini-matlab-struct, win-ini-json, and the pretty-printer win-ini-json