Model Modification Interface ============================ Model operations are grouped into a separate category of operations, as they work at the model-level instead of the root-level. In the MvC, these operations can only be executed after a *model_modify* operation. We distinguish two modes of access: read/write, and read-only. Read-only commands are always available (given that the model itself can be opened in the MvC layer), whereas read/write operations are only optionally visible. Read-only --------- The first set of operations are the read-only operations. list ^^^^ Get a list of all elements in the model. Ignores hidden elements (*i.e.*, name starts with __), as these are artefacts of other operations. list_full ^^^^^^^^^ Get a full list of all elements in the model. nice_list ^^^^^^^^^ Get a pretty-printed list of alle elements in the model, including the value of their attributes. types ^^^^^ Get a list of all elements that can be instantiated in the metamodel. Ignores hidden elements of the metamodel. read ^^^^ Get detailed information on a specific element. verify ^^^^^^ Check if the model conforms to its resolved metamodel. exit ^^^^ Exit the model modification interface. Read/Write ---------- The second set of operations are the read/write operations, which are able to alter the model. Note that in the Modelverse, changes are immediately visible to other users as well. instantiate ^^^^^^^^^^^ Instantiate an element of the metamodel. This only creates the raw element, without any of its slots filled in or any associations. Used for both nodes and edges (classes and associations). delete ^^^^^^ Delete an element of the model. For nodes (classes), all related associations are removed as well. attr_add ^^^^^^^^ Instantiate a new attribute for this element. attr_add_code ^^^^^^^^^^^^^ Instantiate a new attribute for this element, using the code constructors for the value. attr_del ^^^^^^^^ Remove an attribute value of this element. attr_modify ^^^^^^^^^^^ Modify an existing attribute of this element. retype ^^^^^^ Change the type of an element. upload ^^^^^^ Overwrite the current model with an uploaded model through the model constructors.