The MMT code is distributed over multiple components. The frontend.Controller
class creates one instance of each component.
These components include the following:
frontend.Memory
stores all known instances of data structures of the MMT language, i.e., documents, theories, etc. It provides methods for retrieving, adding, updating, and deleting knowledge items identified by their MMT URI.
The same methods are present on the Controller class. High-level requests should always go through the Controller to benefit from transparent retrieval and change management.backend.Backend
maintains connections to all known physical locations of MMT content. When retrieving a knowledge item by its MMT URI that is not held in memory, it is transparently retrieved by the backend and stored in the memory.frontend.ExtensionManager
maintains all registered extensions.parser.Parser
reads data structures in native MMT text syntax.checking.MMTStructureChecker
validates MMT data structures.ontology.Evaluator
evaluates queries of the MMT query language.uom.UOM
) is a rewriting-like engine for MMT expressions that performs simplification and computation.No static part of the MMT code maintains state: All stateful objects are maintained by the Controller or by one of the components maintained by the Controller. Components that must communicate with the Controller or with other components are passed the appropriate instance as a constructor argument.