ProMoT Development Topic: Realization of Modeling Projects
ProMoT started as a tool working purely based on source-code in MDL-files. But over the years graphical facilities in complex modeling projects has become much more important. To reflect this changes in mode of operation it is suggested to organize modeling in ModelingProjects, that help to keep the main classes, icons and source files together.
The main ideas are discussed on this page. The system of projects is currently in a planning phase. You are strongly encouraged to participate and comment on the presented ideas before implementation.
- What is the current state of modeling in ProMoT? -
Modeling in ProMoT takes place based on source files (MDL-files) or is done with the help of the graphical user-interface. The sources are loaded into ProMoT, translated to class-objects (ModelingEntities) and changed by the graphical editors in memory (temporary file).
The ModelingEntities can be saved as MDL-code to a new file via the options "Save All Classes" and "Save Selected Classes" in the File-Menu. There is no simple option "Save", which saves the classes to the files they originally come from.
Users often work with LOAD.mdl files which do not define new classes themselves but
- include libraries defining general classes (e.g. logical library including logical operator classes)
- include files containing own ModelingEntities
- adjust settings for finding the correct versions of these files and the correct icons
- easy control of comment out and in of model parts
The LOAD.mdl files constitute implicitly modeling projects, but have to be changed only on the source level not within the GUI.
What is a Project?
A project is a data-object in ProMoT that keeps and tracks all ModelingEntities and associated data for a modeling project on a specific topic in the real world (e.g. logical model of the EGF signaling pathway). It should facilitate the organization and general configuration of ProMoT for this specific task.
What should a Project provide?
A Project should help to organize your work with the different sources.
- It should know a base-directory for the project, where specific sources, icons and generation-results are kept in a meaningful subdirectory structure.
- The project should keep track of all global settings, which affect the behavior of the GUI, the model-generation process and others. Currently these settings are kept globally in the home-directory of the user.
- It should keep track about different modeling libraries used by remembering the pathnames.
- It should either remember source-files containing the ModelingEntities of the user or the main classes.
- It should know the directories where the icons are kept.
- It can be saved in a single step to all the originating source-files for the different classes and a LOAD.mdl which includes the sources and defines the project.
- It allows higher level operations like exporting all necessary files to share the sources, icons and settings with another user or split a project if a part of it has become too big.
- It should remember the currently defined Visual Scenarios to retain the visual appearance of the model in a consistent way.
What are Open Questions for the Implementation?
- Should there be only ONE project open in ProMoT at the time or is it necessary to have multiple?
- If classes are saved to their originating source-files, is it then necessary to keep the comments inside these files?
- Are classes defined exclusively for ONE project or are they used in a shared way?