2. Library structure
The mgl library consists on the following files and directories:
- One directory per language
- abstract directory: For the abstract modules of the library
- resources directory: Containing the general resource modules, incomplete concrete modules and generic lexicon.
- server: Code for the mathbar demo.
- test: Testing facilities and data
- transfer: Haskell transfer modules.
2.1 Logical structure
At the same time, the library can be organized in three layers of increasing complexity:
- Ground layer: it contains basic and atomic elements. Modules Ground and Variables.
- OpenMath layer: the bulk of the library resides here: There is a module for each targeted OpenMath Content Dictionary, namely: Arith1, Arith2, Calculus1, Complex1, PlanGeo1, Fns1, Integer1, Integer2, Interval1, Limit1, LinAlg1, LinAlg2, Logic1, MinMax1, Nums1, Relation1, Rounding1, Set1, SetName1, Transc1, VecCalc1 and Quant1
- Operations layer: the top layer is for expressing simple mathematical drills by combining an imperative (Compute, Prove, Find, etc.) with the productions of the OpenMath layer. There is also possible to express a sequence of simple computations and to set pre-conditions.