Frameworks Prototype
Contents
Instructions
You are the Thinker who would become Modeller. You will be constructing a ‘simple graphical model of your Thinking and/or Understanding’.
‘Frameworks’ modelling is rule-based.
In this Current Prototype Tool Version 3.0 - upon engaging with the tool, you are presented with the first two nodes of the Core Spinal Model in the Thinking & Modelling Space.
These are:
- Focus Node – which is highlighted – and identifies Your Focus and the focus of the model
- Context Node - identifies the context in which to consider the focus
The Focus and the Context must be named before you are able to continue elaborating the model by adding any additional nodes.
Once the Focus and Context have been named, new nodes can be added by either clicking on the workspace or selecting the elaborate button. New nodes will become children of whichever node is selected as active (indicated by the red circle).
Nodes can be selected as active by clicking on the circle. Clicking on the Text Label will follow the Link HREF of the Node.
When a node is active, clicking on it again will open the dialog to allow you to edit the node.
Nodes can also be moved by clicking and dragging on the circle.
The elaboration allowed is determined by the user level assigned to the model as below. The user level can be changed by clicking on the New Model Button and changing the user level.
User Levels
User Level |
Maximum Levels |
Maximum Children/Level |
Total Nodes |
Novice |
3 |
3 |
14 |
Intermediate |
4 |
5 |
157 |
Advanced |
5 |
7 |
2802 |
Model Management
There are menu buttons to allow:
- New Model Creation (and selection of User Level)
- Loading an existing saved model from Local Storage
- Saving the current model to Local Storage
- Exporting the SVG Image of the current model.
Zooming and Panning
There are zooming and panning controls for moving around larger models. These buttons are located under the model construction and management buttons.
Button |
Action |
+ |
Zoom in |
= |
Reset Zoom |
- |
Zoom Out |
↑ |
Pan Up |
↓ |
Pan Down |
← |
Pan Left |
→ |
Pan Right |
0 |
Reset Pan to 0,0 |
F |
Reset Pan to Focus |
A |
Reset Pan to Active |
Object Model
The ‘Frameworks’ Tool: “The Intelligent Frame” is object-oriented consisting of:
- Frame; Thinking & Modelling Space
- Core Spinal Model; Focus Node, Context Node, Instances Node
- Nodes & Links of Association in a Simple Structural Model
- Stuff Box integral to Frame (to be completed)
- Elaborate Button integral to Frame
Frame
The Frame object manages the rendering and interactivity of the model within the SVG image on the HTML page. The frame is responsible for enforcing the constraints of the metamodel within the scope of the users'* expertise level. This includes:
- Requiring the user to name the Focus Node
- Requiring the user to name the Context Node
- Allowing elaboration of the model by adding nodes depending on the user level
Note: * - ”The “User” in ‘Frameworks’ is the “Thinker Modeller”
Methods are included for:
- Adding Nodes via Mouse Interation
- Adding Nodes via Elaborate Button
- Downloading Frame SVG Data
- Starting a new model and selecting the user level for the new model
- Saving Frameworks Model to localStorage (within Browser)
- Loading Frameworks Model from localStorage
Node
The Node object contains the information related to each node in the model including:
- The Nodes Unique ID in the model
- The Nodes Name
- A description of the Node to be displayed when the mouse hovers over the node
- A hypertext link for a web page that the node links off to
- A list of all the child nodes of this node in the model
The Node also contains methods to allow the node to be rendered and interacted with via the SVG representation within the frame. These methods include:
- Node Creation
- Node Update via Dialog Box
- Node Move
- Node Deletion
Nodes can also be protected by the metamodel to prevent certain nodes from being deleted or moved (e.g. Focus and Context Nodes).
Line (link of association)
The line object provides methods for drawing and manipulating the lines connecting nodes in the SVG image within the frame. These include
- drawLine - to Draw the lines within the Frame.
- drawLineTo - to draw a line to a specific node.
- getLineGeometry - calculate the line geometry to align to node edges.
Phase 3 (and beyond) Feature Suggestions
- Development of “Stuff Box”
- What type of objects are stored in the stuff box
- Are they simply named links to web resources
- Is there an expectation that large objects such as files can be stored here?
- If 2 then consider leveraging on other object storage and just keeping named links as in 1.
- How do objects in the stuff box relate to nodes in the model?
- Should you be able to drag them from the stuff box where they become child nodes of the active node with the name and link populated?
- Once something has been moved to the model should it be removed from the stuff box?
- What should the stuff box look like when you open it?
- Is it a list of things?
- Is it a grid of nodes to be drag and dropped?
- How do you add things to the stuff box?
- User Interface Improvements
- Dynamic Scaling to different screen sizes
- Inclusion of stuff box and thicker borders in frames
- Addition of touch friendly gestures for zoom/pan etc
Deployment
- The current code base is deployed via a CICD Pipeline integrated to an Azure Static Web App.
- A pull request to main will trigger a deployment to a test clone environment with a unique URL to test.
- Merging the Pull Request will trigger a full re-deployment to the main environment.
- The database for storing the models needs to be build manually via from the scripts in the SQL directory.
- The connection to the database needs to then be added to the Azure Static Web App Environment Variables as SqlConnectionString.
- The current deployment shares the production database with the test environments that are created by the CICD pipeline.