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. - `Data.List `_ - `Data.IntMap.Strict `_ - `Data.HashMap.Strict `_ - `aeson `_ - `xeno `_ - `algebraic graphs `_ - `rdf4 `_ - 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. .. toctree:: :maxdepth: 2 :caption: Contents: