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 documents

    NarrativeElements are all elements that do not have a semantics of their own.

    NarrativeElements are all elements that do not have a semantics of their own.

    The most important case are Documents. Inside, documents a few other other documents may occur.

    Definition Classes
    api
  • ArchiveLevel
  • DRef
  • Document
  • DocumentLevel
  • DocumentRule
  • FileLevel
  • FixedMeta
  • FolderLevel
  • GroupLevel
  • HubLevel
  • InterpretationInstruction
  • InterpretationInstructionContext
  • MRef
  • ModuleLevel
  • NRef
  • Namespace
  • NamespaceImport
  • NarrativeMetadata
  • SRef
  • SectionInModuleLevel
  • SectionLevel

class Document extends NarrativeElement with ContainerElement[NarrativeElement] with DefaultMutability[NarrativeElement]

A Document represents an MMT document.

A document is stored as a list of references (XRef) to content items. The content itself is stored in the controller.

Source
Document.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Document
  2. DefaultMutability
  3. ContainerElement
  4. MutableElementContainer
  5. ElementContainer
  6. NarrativeElement
  7. StructuralElement
  8. NamedElement
  9. Content
  10. ClientProperties
  11. HasMetaData
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Document(path: DPath, level: DocumentLevel = FileLevel, contentAncestor: Option[ModuleOrLink] = None, inititems: List[NarrativeElement] = Nil, initNsMap: NamespaceMap = NamespaceMap.empty)

    path

    the URI of the document; for toplevel documents, this is a URL

    level

    the role of this document in a hierarchy of nested documents, default is FileLevel the role of source files containing modules

    contentAncestor

    the closest container of this document that is a module (if any)

    initNsMap

    the namespace map that applies at the beginning of the document

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(i: NarrativeElement, at: AddPosition = AtEnd): Unit
    Definition Classes
    DefaultMutability
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. lazy val clientProperty: ListMap[URI, Any]
    Definition Classes
    ClientProperties
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. def compatible(that: StructuralElement): Boolean

    two StructuralElement's are compatible if they have the same type, same Path, and agree in all parts that are TermContainer's

    two StructuralElement's are compatible if they have the same type, same Path, and agree in all parts that are TermContainer's

    Definition Classes
    StructuralElement
  9. val contentAncestor: Option[ModuleOrLink]
  10. def delete(n: LocalName): Option[NarrativeElement]

    deletes a child

    deletes a child

    Definition Classes
    DefaultMutability
  11. def domain: Iterable[LocalName]
    Definition Classes
    DocumentElementContainer
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def equivalentTo(that: StructuralElement): Boolean

    logically equivalent: compares headerInfo, components, and declarations

    logically equivalent: compares headerInfo, components, and declarations

    Definition Classes
    StructuralElement
  15. val feature: String

    the kind of declaration, e.g., "constant"

    the kind of declaration, e.g., "constant"

    Definition Classes
    DocumentStructuralElement
  16. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def get(name: LocalName): NarrativeElement
    Definition Classes
    ElementContainer
  18. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def getComponent(k: ComponentKey): Option[ComponentContainer]

    returns a specific component if present

    returns a specific component if present

    Definition Classes
    StructuralElement
  20. def getComponentContext(k: ComponentKey): Context

    like getComponent but returns the additional context (in addition to the context of the element) of the component, empty by default, override as needed unspecified if the component does not exist

    like getComponent but returns the additional context (in addition to the context of the element) of the component, empty by default, override as needed unspecified if the component does not exist

    Definition Classes
    StructuralElement
  21. def getComponents: List[DeclarationComponent]

    returns all term components of this elements

    returns all term components of this elements

    Definition Classes
    NarrativeElementStructuralElement
  22. def getDeclarations: List[NarrativeElement]

    returns the list of children of the document (including narration)

    returns the list of children of the document (including narration)

    Definition Classes
    DocumentElementContainerStructuralElement
  23. def getDeclarationsBefore(n: LocalName): List[NarrativeElement]
    Definition Classes
    ElementContainer
  24. def getDeclarationsElaborated: List[NarrativeElement]

    the list of declarations using elaborated declarations where possible these are: primitive elements: includes, constants other elements if they have not been fully elaborated

    the list of declarations using elaborated declarations where possible these are: primitive elements: includes, constants other elements if they have not been fully elaborated

    Definition Classes
    ContainerElement
  25. def getIIContext: InterpretationInstructionContext

    returns the interpretation contex that applies at the end of this document

  26. def getLocally(name: LocalName): Option[NarrativeElement]

    same as get

  27. def getMetaDataNode: NodeSeq
    Definition Classes
    HasMetaData
  28. def getModules(lib: Lookup): List[MPath]

    returns

    list of modules declared in this Document or its children (depth first)

  29. def getModulesResolved(lib: Lookup): List[Module]

    like getModules but resolves all modules

  30. def getMostSpecific(name: LocalName): Option[(NarrativeElement, LocalName)]
    Definition Classes
    DocumentElementContainer
  31. def getNamespaceMap: NamespaceMap

    returns the namespace map that applies at the end of this document

  32. def getO(name: LocalName): Option[NarrativeElement]

    retrieves a descendant

    retrieves a descendant

    This may fail for two reasons:

    • a segment of n does not exist
    • a segment of n exists but is not a Document

    use Library.getNarrative for smarter dereferencing

    Definition Classes
    DocumentElementContainer
  33. def getO(name: String): Option[NarrativeElement]

    same as get(LocalName(name))

    same as get(LocalName(name))

    Definition Classes
    ElementContainer
  34. def getOrigin: Origin
    Definition Classes
    StructuralElement
  35. def getPrimitiveDeclarations: List[NarrativeElement]

    the list of declarations in the order of addition, excludes generated declarations

    the list of declarations in the order of addition, excludes generated declarations

    Definition Classes
    ContainerElement
  36. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  37. def headerInfo: HeaderInfo

    header information of this elements includes the MMT types (e.g., domain, codomain of links) but not the logical types of constants

    header information of this elements includes the MMT types (e.g., domain, codomain of links) but not the logical types of constants

    Definition Classes
    StructuralElement
  38. def isDeclared(name: LocalName): Boolean
    Definition Classes
    ElementContainer
  39. def isGenerated: Boolean
    Definition Classes
    StructuralElement
  40. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  41. val level: DocumentLevel
  42. def merge(that: StructuralElement): Unit

    merge all properties of 'that' into 'this' except for components and declarations

    merge all properties of 'that' into 'this' except for components and declarations

    Definition Classes
    StructuralElement
  43. val metadata: MetaData
    Definition Classes
    HasMetaData
  44. val name: LocalName

    the name relative to the parent

    the name relative to the parent

    Definition Classes
    DocumentNamedElement
  45. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  46. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  47. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  48. val parent: DPath

    the containing knowledge item, a URL if none

    the containing knowledge item, a URL if none

    Definition Classes
    DocumentStructuralElement
  49. def parentOpt: Option[DPath]

    the containing document if root == false; otherwise, the URI without path

    the containing document if root == false; otherwise, the URI without path

    Definition Classes
    DocumentNarrativeElement
  50. val path: DPath

    the MMT URI of the element

    the MMT URI of the element

    Definition Classes
    DocumentNarrativeElementStructuralElement
  51. def reorder(ln: LocalName): Unit

    moves ln to the end

    moves ln to the end

    Definition Classes
    DefaultMutability
  52. def root: Boolean

    not a section (which is stored as part of some other document)

  53. def setDeclarations(nes: List[NarrativeElement]): Unit

    must be provided by the implementing class to update the declarations

    must be provided by the implementing class to update the declarations

    Attributes
    protected
    Definition Classes
    DocumentDefaultMutability
  54. def setOrigin(o: Origin): Unit
    Definition Classes
    StructuralElement
  55. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  56. def toNode(rh: RenderingHandler): Unit

    by default, this prints out toNode

    by default, this prints out toNode

    potentially large StructuralElements should override it with a memory-efficient implementation

    Definition Classes
    DocumentContent
  57. def toNode: Elem

    XML representation

    XML representation

    Definition Classes
    DocumentContent
  58. def toNodeResolved(lib: Lookup, expandAll: Boolean = false): Elem

    prints document with all generated references expanded

    prints document with all generated references expanded

    lib

    the library where reference are looked up

    expandAll

    whether to expand all references or only generated ones false by default

  59. def toString(): String
    Definition Classes
    Document → AnyRef → Any
  60. def update(s: NarrativeElement): Unit

    updates or adds a child

    updates or adds a child

    Definition Classes
    DefaultMutability
  61. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  62. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  63. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from NarrativeElement

Inherited from StructuralElement

Inherited from NamedElement

Inherited from Content

Inherited from ClientProperties

Inherited from HasMetaData

Inherited from AnyRef

Inherited from Any

Ungrouped