123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- Modelverse Core
- ===============
- The Modelverse Core (MvC) is an example (meta-)modelling interface that can be used with a plethora of tools.
- While the MvC itself is rather simple and its interface is kind of hard to use, wrappers can be put in front of it to make the behaviour much friendlier.
- For example, a simple call to instantiate a specific class requires several XML/HTTPRequest calls back and forth.
- A simple wrapper can abstract from this complexity, while retaining the elegance of the versatile interface.
- The MvC at the moment is written for a simple textual interface, but can easily be augmented with additional information to make it more computer-readable.
- For example, requests and replies can make use of IDs to distinguish or identify the information being passed around, or perform context switches.
- The MvC manages the Modelverse information visible to all users.
- Since all information in the Modelverse is stored as a model, this user and model management information is stored as a model as well: the Core model.
- The core model is a mega-model that provides links to all other models stored in the Modelverse (including itself!).
- For each of these models, additional meta-information is stored within the Core model.
- Only admin users have read and write permission to the Core model by default: this model is used for all other operations.
- While some operations are allowed for other users, such as modifying the permissions of your own file, this write must be done with administrator permissions.
- Therefore, this MvC interface provides some specialized operations which check for the necessary permissions (*e.g.*, owner of the model), and then apply the requested operation with admin permissions.
- An overview of the MvC interface is shown below.
- A complete overview of the code is shown in the :download:`MvC core algorithm <../core/core_algorithm.alc>`
- None of these operations manipulate the model at a finer granularity: for that we use the :download:`Mini-Modify <../core/mini_modify.alc>` code, which is sometimes called.
- A detailed explanation of its operations is shown later.
- Model operations
- ----------------
- The first set of operations are basic model management operations.
- model_add
- ^^^^^^^^^
- Adds a new model to the Modelverse.
- Model content is specified using model constructors, which can be generated with the model compiler.
- model_modify
- ^^^^^^^^^^^^
- Switches the interface to model-scope operations of a specific model.
- model_list
- ^^^^^^^^^^
- Give an overview list of all models, showing their name and type.
- model_list_full
- ^^^^^^^^^^^^^^^
- Give a detailed overview list of all models, showing their name, type, permissions, owner, and group.
- model_overwrite
- ^^^^^^^^^^^^^^^
- Overwrite an existing model. Similar to *model_add*, but keeps existing meta-information to the model intact.
- verify
- ^^^^^^
- Verify whether a model conforms to the specified metamodels.
- Transformation-specific operations
- ----------------------------------
- The second set of operations are specific to model transformations.
- transformation_add_MT_language
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Create a new RAMified metamodel out of several existing metamodels.
- The generated metamodel can be used to instantiate a model transformation.
- transformation_add_MT
- ^^^^^^^^^^^^^^^^^^^^^
- Add a new model transformation schedule, including the rules.
- transformation_add_AL
- ^^^^^^^^^^^^^^^^^^^^^
- Add a new action language model that operates on models.
- transformation_add_MANUAL
- ^^^^^^^^^^^^^^^^^^^^^^^^^
- Add a new manual model transformation.
- transformation_execute
- ^^^^^^^^^^^^^^^^^^^^^^
- Execute an existing transformation. Automatically finds out the type and executes the relevant interface.
- transformation_list
- ^^^^^^^^^^^^^^^^^^^
- List known transformations and their type.
- transformation_list_full
- ^^^^^^^^^^^^^^^^^^^^^^^^
- List known transformations and their type, as well as permissions, owner, and group.
- transformation_detail
- ^^^^^^^^^^^^^^^^^^^^^
- Give details on a single transformation, such as the source and target formalisms.
- transformation_RAMify
- ^^^^^^^^^^^^^^^^^^^^^
- RAMify an existing metamodel again.
- Useful if the related metamodel has changed.
- Process operations
- ------------------
- The third set of operations is related to the execution and operation on an FTG+PM.
- process_execute
- ^^^^^^^^^^^^^^^
- Execute an existing process model.
- Model permission operations
- ---------------------------
- The fourth set of operations is related to model access control management.
- permission_modify
- ^^^^^^^^^^^^^^^^^
- Modifies the permission of a specified model.
- permission_owner
- ^^^^^^^^^^^^^^^^
- Modifies the owner of a specified model.
- permission_group
- ^^^^^^^^^^^^^^^^
- Modifies the group of a specified model.
- Group operations
- ----------------
- The fifth set of operations is related to the management of groups.
- group_create
- ^^^^^^^^^^^^
- Create a new group, and become its administrator.
- group_delete
- ^^^^^^^^^^^^
- Delete a group for which you are administrator.
- group_owner_add
- ^^^^^^^^^^^^^^^
- Add a new user as administrator to a group of which you are an administrator.
- group_owner_delete
- ^^^^^^^^^^^^^^^^^^
- Remove a user as administrator from a group of which you are an administrator.
- group_join
- ^^^^^^^^^^
- Add a new user to a group of which you are an administrator.
- group_kick
- ^^^^^^^^^^
- Remove a user from a group of which you are an administrator.
- group_list
- ^^^^^^^^^^
- List all known groups.
- Admin operations
- ----------------
- The sixth set of operations is related to administrator operations.
- admin_promote
- ^^^^^^^^^^^^^
- Promote another user as administrator as well.
- admin_demote
- ^^^^^^^^^^^^
- Demote another user from administrator status.
- General operations
- ------------------
- The final set of operations consists of miscellaneous operations.
- self-destruct
- ^^^^^^^^^^^^^
- Destroy the current user, revoking all permissions of owning models.
- exit
- ^^^^
- Exit the current task, while keeping the user intact.
|