Packages

  • package root
    Definition Classes
    root
  • package info
    Definition Classes
    root
  • package kwarc
    Definition Classes
    info
  • package mmt
    Definition Classes
    kwarc
  • package api

    This is the main package of the MMT API.

    This is the main package of the MMT API.

    It holds subpackages for all data structures, data containers, and the central algorithms and services.

    Classes directly defined in the package

    Some minor classes that are used throughout MMT are defined in this package, in particular:

    • MMT URIs in the class Path and Namespace
    • processing and content errors in the class Error

    The package also contains root classes for certain types that are subclassed throughout the package. Most importantly:

    • StructuralElement: structure-level (= named) parts in the data structures for the MMT language: documents, theories, constants, ...
    • MMTTask: tasks for a single object: parsing, checking, ...
    • Rule: object-level part of the MMT language that is written in Scala

    Subpackages

    Data structures for the MMT language

    The data structures for the MMT languages are defined in 4 packages corresponding to the 4 levels: - documents: Documents and all other NarrativeElements - modules: Modules (= the toplevel declarations), in particular Theorys and Views - symbols: all Declarations inside modules, in particular Constants - objects: all anonymous Objects (e.g., formulas, functions, etc.), in particular Contexts and Terms

    The former 3 levels are jointly called 'structural' levels. All elements subclass StructuralElement, have an MMT URI, and carry an MMT URI referring to their parent in the MMT abstract syntax tree.

    Structural elements are extensible (via DerivedModules and DerivedDeclarations), and the package patterns defines declaration patterns as a built-in extension.

    All structural elements are mutable and implement the ContainerElement interface for changing their children. Objects, by contrast, are represented as immutable inductive types.(except for carrying metadata.Metadata and objects.ClientProperties). The boundary between structural elements and objects is mediated by ComponentContainers: these are mutable, owned by structural elements, and maintain objects.

    A few auxiliary data structures shifted to separate packages: - opaque: external (i.e., informal, computation) content - informal: partially outdated informal data structures - metadata: metadata annotations to all structural elements or objects

    The MMT main class and its internal state

    The package frontend contains the class Controller, which owns all state relevant for running MMT. Typically, each application creates a single instance of this class. The package also defines several other essential classes, most importantly MMT's extension (=plug-in, add-on) interfaces via the Extension class.

    The package libraries maintains the instances of MMT language data structures, in particular the Library class. Controller owns a Library, which stores all structural elements that have been loaded into memory.

    User interfaces

    The package frontend also contains the main executable classes, in particular the Shell class.

    The package gui collects all classes for building graphical user interfaces. This includes auxiliary classes for use in IDE plugins.

    The package web collects all classes for the HTTP interface of MMT.

    Physical storage of the MMT language files

    The package archives defines MMT Archives (= projects) as well as classes for building and working with archives. The latter include in particular the BuildManager and BuildTarget. Build targets include Importers and [Exporter]]s that translate between MMT and other formats.

    The package backend defines classes for maintaining archives and translating between the MMT URIs of structural elements and their physical storage locations.

    The central algorithms for processing MMT content

    The processing model of MMT consists of several major algorithms. - parser: read strings into MMT data structures - checking: check and refine MMT data structures - uom: pure computation on MMT data structures - proving: theorem proving on MMT data structures (in very early state)) - execution: imperative computation (in very, very early state) - presentation: rendering MMT data structures in user-facing formats (including HTML+presentation MathML)

    All algorithms are defined in Extensions coupled with default implementations. Moreover, all algorithms are split into two separate levels, one for structural elements and objects. See LeveledExtension.

    The package notations maintains the common code for parsing and presentation.

    The package valuebases maintains mathematical databases as a part of MMT.

    Other algorithms on the MMT data structures

    The package ontology contains a relational, semantic web-style ontology and query engine for it.

    The package moc contains change management.

    The package refactoring contains refactoring principles.

    General purpose utility functions

    The package utils defines general purpose APIs for files, URIs, HTML building, etc.

    Definition Classes
    mmt
  • package backend

    This package maintains the interface between MMT content in persistent physical storage and MMT content loaded into memory.

    This package maintains the interface between MMT content in persistent physical storage and MMT content loaded into memory.

    The class Storage is the interface for individual physical storage containers. Most of the time this corresponds to a folder containing an archives.Archive.

    Content is usually stored in OMDoc XML format, which is parsed by the XMLStreamer.

    The class Backend maintains the registered storages and performs conversion between logical MMT URIs and physical locations.

    The frontend.Controller owns an instance of Backend. Any referenced MMT URI is lazily and transparently loaded from the backend into memory and unloaded if MMT runs out of memory.

    Definition Classes
    api
  • ArchiveCustomization
  • ArchiveNarrationStorage
  • Backend
  • DefaultCustomization
  • DefaultRealizationLoader
  • LocalCopy
  • LocalSystem
  • MML
  • NotApplicable
  • QueryTransformer
  • ReadXML
  • RealizationArchive
  • RealizationStorage
  • SourceFromReader
  • Storage
  • TPTP
  • TrivialQueryTransformer
  • XMLObjectParser
  • XMLReader
  • XMLStreamer

class Backend extends Logger

the backend of a Controller

holds a list of Storages and uses them to dereference MMT URIs,

Source
Backend.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Backend
  2. Logger
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Backend(extman: ExtensionManager, report: Report)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addStore(s: Storage*): Unit

    adds a storage

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def cleanup: Unit

    releases all resources held by storages

  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. def closeAllArchives: Unit

    unregisters all archives

  9. def closeArchive(id: String): Unit

    unregisters an Archive with a given id

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def findOwningArchive(p: MPath): Option[Archive]

    find the archive of a module path

    find the archive of a module path

    p

    a module URI

    returns

    an archive defining it (the corresponding file exists in content dimension)

  14. def getArchive(root: File): Option[Archive]

    retrieve an Archive by its root folder

  15. def getArchive(id: String): Option[Archive]

    retrieve an Archive by its id

  16. def getArchives: List[Archive]

    retrieves all Archives

  17. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def getStores: List[Storage]

    retrieves all Stores

  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. def load(nf: NotFound)(implicit controller: Controller): Unit

    looks up a path in the first Storage that is applicable and sends the content to the reader

    looks up a path in the first Storage that is applicable and sends the content to the reader

    the registered storages are searched in the order of registration

    throws NotApplicable if the resource is not known/available, BackendError if it is but something goes wrong

  22. def loadClass(cls: String): Option[Class[_]]

    like load but tries to load a Java class

  23. def loadObjectO(p: MPath): Option[SemanticObject]

    like load but tries to load a Rule (no side-effects)

  24. def log(e: Error): Unit

    logs an error - always logged

    logs an error - always logged

    Attributes
    protected
    Definition Classes
    Logger
  25. def log(s: ⇒ String, subgroup: Option[String] = None): Unit

    logs a message with this logger's logprefix

    logs a message with this logger's logprefix

    Attributes
    protected
    Definition Classes
    Logger
  26. def logError(s: ⇒ String): Unit

    log as an error message

    log as an error message

    Attributes
    protected
    Definition Classes
    Logger
  27. def logGroup[A](a: ⇒ A): A

    wraps around a group to create nested logging

    wraps around a group to create nested logging

    Attributes
    protected
    Definition Classes
    Logger
  28. val logPrefix: String
    Definition Classes
    BackendLogger
  29. def logTemp(s: ⇒ String): Unit

    temporary logging - always logged

    temporary logging - always logged

    Attributes
    protected
    Definition Classes
    Logger
  30. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  31. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  32. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. def openArchive(root: File): List[Archive]

    opens archives: an archive folder, or a mar file, or any other folder recursively

    opens archives: an archive folder, or a mar file, or any other folder recursively

    root

    the file/folder containing the archive(s)

    returns

    the opened archives

    Exceptions thrown

    NotApplicable if the root is neither a folder nor a mar file

  34. def openRealizationArchive(file: File): Unit

    creates and registers a RealizationArchive

  35. def removeStore(s: Storage): Unit

    removes a Storage (if present)

  36. val report: Report
    Definition Classes
    BackendLogger
  37. def resolveAnyPhysical(f: File): Option[(File, FilePath)]

    like resolvePhysical but irrespective of loaded archives

    like resolvePhysical but irrespective of loaded archives

    returns

    archive root and relative path in archive

  38. def resolveAnyPhysicalAndLoad(f: File): Option[(Archive, List[String])]

    like resolveAnyPhysical but automatically loads and returns the archive

  39. def resolveLogical(uri: URI): Option[(Archive, List[String])]

    splits a logical document URI into the Archive holding it and the relative path in that archive leading to it

  40. def resolvePhysical(file: File): Option[(Archive, List[String])]

    splits a physical document URI into the Archive holding it and the relative path in that archive leading to it

  41. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  42. def toString(): String
    Definition Classes
    AnyRef → Any
  43. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  45. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Logger

Inherited from AnyRef

Inherited from Any

Ungrouped