The master branch tracks releases. For the latest version, see the
develop
branch.
A transformation language is used to describe processes, like the ones implicit in workflows or software tools, as transformations between types. These types do not necessarily denote a concrete data structure, and the descriptions may be independent from any particular implementation. The goal is only to capture some properties that are deemed conceptually relevant, as a form of procedural metadata.
transforge
facilitates defining a transformation language and parsing
its expressions into semantic graphs. It is written in pure Python with
few dependencies.
In order to reason about about transformations, it also implements a type inference module, which accommodates both subtype- and parametric polymorphism.
Expressions of a transformation language can be turned into transformation graphs. Such graphs can be serialized into RDF, or converted to SPARQL queries and matched against other graphs. This enables flexible searching through processes.
The library is still in development. Interfaces might change without warning.
This package was developed for the CCT algebra for geographical information, which may act as an example.