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 libraries

    Library maintains the structural elements that have been loaded into memory.

    Library maintains the structural elements that have been loaded into memory. That includes the theory diagram and all documents.

    ImplicitGraph maintains the commutative sub-diagram of implicit morphisms.

    Definition Classes
    api
  • AlreadyDefined
  • Completion
  • FailingNotFoundHandler
  • ImplicitGraph
  • InactiveElement
  • IncludeOption
  • LabeledHashRelation
  • Library
  • Lookup
  • LookupWithNotFoundHandler
  • ModuleHashMap
  • Names
  • ThinGeneratedCategory
  • UniqueGraph

class Library extends Lookup with Logger

A Library is the in-memory representation of an MMT diagram, including the implicit-diagram, and all root documents.

It implements the lookup and change of MMT URIs via get/add/update/delete/reorder methods.

Invariant: This class guarantees structural well-formedness in the sense that libraries conform to the MMT grammar and all declarations have canonical URIs. The well-formedness of the objects in the declarations is not guaranteed.

The Controller own a library and uses it to load elements into memory dynamically. Therefore, access should always be through the corresponding methods of the controller. Elements are unloaded dynamically if MMT runs out of memory.

Self Type
Library
Source
Library.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Library
  2. Logger
  3. Lookup
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Library(extman: ExtensionManager, report: Report, previous: Option[Library])

    extman

    the controller's extension manager

    report

    parameter for logging.

    previous

    a second library that stores the previous version whenever an element is changed

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 add(e: StructuralElement, at: AddPosition = AtEnd): Unit

    adds a declaration

    adds a declaration

    e

    the added declaration

  5. def apply(path: ContentPath): StructuralElement
    Definition Classes
    Lookup
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. val asLocalLookup: LookupWithNotFoundHandler with FailingNotFoundHandler

    same as this but GetError instead of NotFound

  8. def clear: Unit

    forgets everything

  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  10. def deactivate(se: StructuralElement): Unit
  11. def delete(path: Path): Unit

    deletes the element with the given URI

    deletes the element with the given URI

    path

    the path to the element to be deleted

  12. def endAdd(c: ContainerElement[_]): Unit

    add-related work that has to be done at the end of an element in particular: implicit morphisms are registered only when the inducing element has been checked

  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  15. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. def forDeclarationsInScope(mod: Term)(f: (MPath, Term, Declaration) ⇒ Unit): Unit

    all declarations that are visible (based on what is currently loaded) to a theory replaced with forDeclarationsInScope

    all declarations that are visible (based on what is currently loaded) to a theory replaced with forDeclarationsInScope

    mod

    the theory

    f

    applied to (theory t declaring d, morphism mod->t that makes d visible, d)

    Definition Classes
    LibraryLookup
  17. def get(home: Term, name: LocalName, error: (String) ⇒ Nothing): Declaration

    retrieval in a module expression

    retrieval in a module expression

    home

    the module in which to look up

    name

    the name look up; must start with ComplexStep unless it is local to home

    error

    the continuation to call on the error message

    returns

    the declaration

    Definition Classes
    LibraryLookup
  18. def get(p: Path): StructuralElement

    top level retrieval method

    top level retrieval method

    Definition Classes
    LibraryLookup
  19. def getAllPaths: Iterable[MPath]

    returns all module paths indexed by this library

  20. def getAs[E <: ContentElement](cls: Class[E], home: Term, name: LocalName, error: (String) ⇒ Nothing): E

    like get but with restricted return type

    like get but with restricted return type

    Definition Classes
    Lookup
  21. def getAs[E <: StructuralElement](cls: Class[E], path: Path): E

    like get but with restricted return type example: getAs(classOf[Constant], path): Constant

    like get but with restricted return type example: getAs(classOf[Constant], path): Constant

    Definition Classes
    Lookup
  22. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  23. def getComponent(path: CPath): ComponentContainer
    Definition Classes
    Lookup
  24. def getConstant(path: GlobalName, msg: (Path) ⇒ String = defmsg): Constant
    Definition Classes
    Lookup
  25. def getDomain(a: Declaration): (AbstractTheory, Option[Link])

    gets the domain in which a Declaration was declared

    gets the domain in which a Declaration was declared

    This can be used to retrieve the source of an assignment declared in a DeclaredLink. It is also the official way to test whether a Constant is an assignment.

    a

    the Constant declaration/assignment

    returns

    if assignment: the source theory and the containing link; if declaration: the containing theory

    Definition Classes
    Lookup
  26. def getImplicit(from: Term, to: Term): Option[Term]

    retrieve the implicit morphism "from --implicit--> to"

    retrieve the implicit morphism "from --implicit--> to"

    Definition Classes
    LibraryLookup
  27. def getImplicit(from: MPath, to: MPath): Option[Term]
    Definition Classes
    Lookup
  28. def getLink(path: ContentPath, msg: (Path) ⇒ String = defmsg): Link
    Definition Classes
    Lookup
  29. def getModule(path: MPath): Module

    important special case

    important special case

    Definition Classes
    Lookup
  30. def getModules: Iterable[Module]

    retrieves all modules in any order

  31. def getO(home: Term, name: LocalName): Option[Declaration]

    like get but returns optional

    like get but returns optional

    Definition Classes
    Lookup
  32. def getO(path: Path): Option[StructuralElement]

    like get, but returns option

    like get, but returns option

    Definition Classes
    Lookup
  33. def getParent(d: Declaration): ModuleOrLink

    returns the container element that contains a declarations

    returns the container element that contains a declarations

    Definition Classes
    Lookup
  34. def getStructure(path: GlobalName, msg: (Path) ⇒ String = defmsg): Structure
    Definition Classes
    Lookup
  35. def getSymbol(path: GlobalName, msg: (Path) ⇒ String = defmsg): Declaration
    Definition Classes
    Lookup
  36. def getTheory(path: MPath, msg: (Path) ⇒ String = defmsg): Theory
    Definition Classes
    Lookup
  37. def getView(path: MPath, msg: (Path) ⇒ String = defmsg): View
    Definition Classes
    Lookup
  38. def hasImplicit(from: Term, to: Term): Boolean
    Definition Classes
    Lookup
  39. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  40. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  41. def log(e: Error): Unit

    logs an error - always logged

    logs an error - always logged

    Attributes
    protected
    Definition Classes
    Logger
  42. 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
  43. def logError(s: ⇒ String): Unit

    log as an error message

    log as an error message

    Attributes
    protected
    Definition Classes
    Logger
  44. 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
  45. val logPrefix: String
    Definition Classes
    LibraryLogger
  46. def logTemp(s: ⇒ String): Unit

    temporary logging - always logged

    temporary logging - always logged

    Attributes
    protected
    Definition Classes
    Logger
  47. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  48. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  49. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  50. def notifyUpdated(p: CPath): Unit

    marks all known dependent components as dirty

    marks all known dependent components as dirty

    This method is public because components may be changed from the outside. In that case, this method may be called additionally to maintain invariants.

    When deleting a Symbol or Component, this is called automatically.

    p

    path to the component that was changed/deleted

  51. def preImage(p: GlobalName): Option[GlobalName]

    returns the symbol from which the argument symbol arose by a structure declaration

    returns the symbol from which the argument symbol arose by a structure declaration

    Definition Classes
    LibraryLookup
  52. def quasiAliasFor(c: GlobalName): List[GlobalName]

    all constants for which c is a quasi-alias (recursively) a quasi-alias is defined by a definition c = OMS(d)

    all constants for which c is a quasi-alias (recursively) a quasi-alias is defined by a definition c = OMS(d)

    Definition Classes
    Lookup
  53. def reactivate(se: StructuralElement): Unit
  54. def reorder(p: Path): Unit

    moves an element with a given path to the end of its parent document

  55. val report: Report
    Definition Classes
    LibraryLogger
  56. def resolveName(parents: List[MPath], name: LocalName): List[GlobalName]

    resolves a name in a list of theories using any included theory, possibly inserting include steps

    resolves a name in a list of theories using any included theory, possibly inserting include steps

    Definition Classes
    Lookup
  57. def resolveRealizedName(parent: ModuleOrLink, name: LocalName): List[GlobalName]

    resolves a name in a module using any included or realized theories

    resolves a name in a module using any included or realized theories

    Definition Classes
    Lookup
  58. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  59. def toString(): String
    Definition Classes
    Library → AnyRef → Any
  60. def update(e: StructuralElement): Unit

    updates a StructuralElement

  61. def visible(to: Term): Iterable[MPath]

    as visibleVia but dropping the implicit morphisms

    as visibleVia but dropping the implicit morphisms

    Definition Classes
    LibraryLookup
  62. def visibleDirect(to: Term): List[MPath]

    as visible but only those where the morphism is trivial (i.e., all includes)

  63. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  64. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  65. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  66. object ApplyMorphs extends Traverser[Term]

    A Traverser that recursively eliminates all explicit morphism applications.

    A Traverser that recursively eliminates all explicit morphism applications. apply(t,m) can be used to apply a morphism to a term.

    Definition Classes
    Lookup
  67. object ExpandDefinitions extends Traverser[(ContentPath) ⇒ Boolean]

    A Traverser that recursively expands definitions of Constants.

    A Traverser that recursively expands definitions of Constants. It carries along a test function that is used to determine when a constant should be expanded.

    Definition Classes
    Lookup

Inherited from Logger

Inherited from Lookup

Inherited from AnyRef

Inherited from Any

Ungrouped