Skip to content

Describe processes as type transformations, with inference that supports subtypes and parametric polymorphism. Create and query corresponding transformation graphs.

License

Notifications You must be signed in to change notification settings

quangis/transforge

Repository files navigation

transforge

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.

Usage

This package was developed for the CCT algebra for geographical information, which may act as an example.

Click here for the tutorial.