|
3 | 3 | ## Executive Summary
|
4 | 4 |
|
5 | 5 | - This research note covers the important aspects of MSML as they relate to the technical project manager pod at BlockScience
|
6 |
| -- The primary question is how can TPMs support building of an MSML spec |
| 6 | +- The primary question is how can TPMs support building of an MSML spec? |
| 7 | +- The first few sections cover some of the concepts and then we move into an example of the flow |
7 | 8 |
|
8 | 9 | ## Internal Communications
|
9 | 10 |
|
|
31 | 32 | - The other option is to create a cadCAD export model which then gives a data scientist an object to use for testing that just needs a state space and parameter space but has all the logic bound into it, for example the template has an example of how to build it [here](https://github.com/BlockScience/MSML-Template/blob/main/notebooks/Build%20cadCAD.ipynb)
|
32 | 33 | - The documentation covers a lot of what needs to be done for running these so we won't dive into details any further
|
33 | 34 |
|
34 |
| -## Where TPMs can be Involved (High Level) |
35 |
| - |
36 |
| -- Information sourcing and curation |
37 |
| -- Interfacing with clients |
38 |
| -- Validation |
39 |
| - |
40 | 35 | ## An Example TPM Aided Flow
|
41 | 36 |
|
42 | 37 | - We will work through an example of how we might break down a simple project with iteration loops involving TPMs
|
|
68 | 63 | - Notes then can be filled in with the components of what will become the JSON representation, such as the "Agent Reproduction Boundary Action":
|
69 | 64 | 
|
70 | 65 |
|
| 66 | +### Phase 3 - Writing the Spec |
| 67 | + |
| 68 | +- During this phase the components are built out taking information from the past two phases into account |
| 69 | +- The two ways generally that the spec is built out are (or a combination of them): |
| 70 | + - Breadth first: Writing all the components out, wiring them up, and only once that is set filling them in |
| 71 | + - Depth first: Going through one high level wiring at a time, decomposing it, filling in all details including descriptions and only once complete moving on to another one |
| 72 | +- 🎯 Alignment sessions with the Obsidian vault here are useful |
| 73 | + - Internal alignment should be for going through either wiring scaffolds or filled out wirings and components to ensure the current work done is aligning with the TPM's vision |
| 74 | + - Pull requests with reviews requested are one way to standardize adding groups of new components but still ensuring TPMs are "checking off" on validity |
| 75 | + - For external client meetings, the reports and Obsidian vaults can be used to show whichever parts of the system are currently in question or scope |
| 76 | +- Writing a spec is iterative, the MSML engineer can plan check-ins based on their comfort; the frequency could be literally every time a new component is created or something longer term like only after one or a few new wirings are added |
| 77 | +- As an example, in predator prey, you might just handle the wiring of "Increase Agent Age" first by writing the components of "Increase Age Control Action", "Increase Age Policy" and "Age & Food Mechanisms" then showcasing the [Obsidian page](https://github.com/BlockScience/Predator-Prey-MSML/blob/main/reports/obsidian/Wiring/Increase%20Agent%20Age%20Wiring.md) for it and getting feedback |
| 78 | + - And then further iterating on things like definitions |
| 79 | + |
| 80 | +### Phase 4 - Binding Code |
| 81 | + |
| 82 | +- Without going into technical details, MSML allows you to bind code to different components and run individual components, wires or groups of wires |
| 83 | +- 🎯 Giving user stories can help here to ensure that the components/code accurately process whatever information needs to be processed |
| 84 | + - For example, we might prescribe a scenario for food growth with expected outputs given starting state and parameters which the MSML engineer can create into a test case like [this](https://github.com/BlockScience/Predator-Prey-MSML/blob/main/tests/Food%20Growth%20Test.ipynb) |
| 85 | +- 🎯 Creating economic test cases (which soon will be native to MSML) can be helpful |
| 86 | + - For example, in this [MSML template test](https://github.com/BlockScience/MSML-Template/blob/main/tests/DUMMY%20Economic%20Test.ipynb), we check that certain metrics are within ranges that we know they should be if the system is functioning properly |
| 87 | + |
| 88 | +### Phase 5 - Simulation |
| 89 | + |
| 90 | +- This phase is where simulations in either cadCAD or MSML's specific engine are created, the details here for the engineer are not as important as the ways in which TPMs can aid it |
| 91 | +- 🎯 Writing out scenarios that should be tested and what parameters to sweep in order to satisfy the scientific questions |
| 92 | +- 🎯 Aiding in writing the conclusions and analysis after running models |
| 93 | +- 🎯 Working with the client to understand what kinds of simulations would be most useful for them |
| 94 | +- For example, with predator-prey, there might be one simulation that only has prey first to simulate basic things like equilibriums of number of prey and food growth rate and then other simulations that add in predators to test out what happens when they are introduced |
71 | 95 |
|
72 | 96 | ## A Future Flow: BDP -> MSML -> Code Enabled Specs -> MSML Simulations / cadCAD Simulations
|
73 | 97 |
|
| 98 | +- A workflow is emerging now that is being iterated on which would have phases to the lifecycle of modeling |
| 99 | +- The phases would be broken out into: |
| 100 | + |
| 101 | +1. Block Diagram Protocol: Writing block diagrams that only at a high level explain what kinds of blocks, spaces and wirings there are for a system |
| 102 | +2. MSML: Enhancing the block diagrams with extra information such as states, the types of blocks (boundary action vs. policy, etc.), parameters and other enhancements |
| 103 | +3. Code Enabled Specs: MSML specs with code bound to them for running wirings and doing user stories and smaller investigations |
| 104 | +4. Full-scale MSML Simulations or cadCAD Simulations: Computational engines for running full scale simulations for querying scientific questions |
74 | 105 |
|
75 | 106 | ## Additional Resource
|
76 | 107 |
|
|
0 commit comments