Haskell backend¶
The Haskell backend is an independent part of the system and the user can use it from the console. You can start the program by navigating its folder MultiCategory
and running the command stack ghci
which starts the (read evaluate print loop).
Packages and data structures¶
The backend uses the following packages to store different models. Some of the data structures are fairly simple and included in the base.
NimpleGraph (our own graph data manipulation implementation)
Schema and instance categories¶
The schema categories are implemented as modules that contain Haskell datatypes. These schema categories can be found from the folder src which contains folders named after the data sets. Each folder contains a file called SchemaCategory.hs. Each of these folders contains a file called InstanceCategory.hs which contains the objects that are mapped with collection constructor functors from the schema category. The morphisms are not implemented explicitly since we conceptually consider that all the Haskell functions (except the undefined) to be morphisms.