Terminology

This is a list of webgme-terminology that will be used throughout the tutorial. It’s recommended to at least skim through the list at this stage, but you can always return to it later.

Project
Version (and access) controlled model repository containing (model)data-blobs, commits, branches and tags.
Commit
Immutable object with a reference to a single state of a project and the ancestor commit(s) [of that state].
Branch
Mutable label referencing a single commit. [Changes to branches are broadcasted to clients.]
Tag
Similar to a branch, but it does not change. [It can be deleted and recreated but not updated.]
Node
Atomic modeling element in the project tree.
Containment/Composition
Single rooted tree among the nodes related as parent/children. Strong relationship.
Inheritance
Single rooted tree among the nodes related as base/instance. Strong relationship that infers prototypal/prototypical inheritance.
Project Tree
Combination of the containment and inheritance tree. [Where the nodes exist.]
FCO and ROOT node
The FCO is the root of the inheritance tree and the ROOT is the root of the containment tree.
Meta-rules
Definitions that governs the properties of, and relationships between the nodes.
Meta-node
Node that is part of the MetaAspectSet (owned by the ROOT) and typically contains meta-rules.
Meta-type
A node’s first parent in the inheritance tree that is a meta-node is the meta-type of that node.
Relid
Unique identifier of a child within a parent.
Path
Unique position of a node in the containment hierarchy. [The ‘/’-concatenation of the parents’ and its relids.]
GUID
Immutable unique identifier of a node.
Library and namespace
A project embedded within another project. Each library defines a unique namespace.
Core API
API for querying and manipulating nodes that forms a state of a project.
Client API
API on top of the Core API that also handles the evolution of a project.
Plugin
Scripts invoked on a specific state of a project. [Typically use the Core API to interpret or transform models.]
Visualizer
UI-component that visualizes the state and evolution of the project tree. [Typically uses the Client API to track the changes]
Decorator
UI-component subordinate a visualizer that visualizes/decorates a single node. [The Model Editor and Part Browser defines their own APIs for controlling their decorators.]