math-spec-mapping 0.3.20__tar.gz → 0.4.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. {math_spec_mapping-0.3.20/src/math_spec_mapping.egg-info → math_spec_mapping-0.4.0}/PKG-INFO +11 -31
  2. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/README.md +10 -30
  3. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/pyproject.toml +1 -1
  4. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Block.py +3 -3
  5. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/MathSpec.py +29 -0
  6. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Convenience/github.py +9 -0
  7. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0/src/math_spec_mapping.egg-info}/PKG-INFO +11 -31
  8. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/LICENSE +0 -0
  9. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/setup.cfg +0 -0
  10. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/ActionTransmissionChannel.py +0 -0
  11. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/BoundaryAction.py +0 -0
  12. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/ControlAction.py +0 -0
  13. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Entity.py +0 -0
  14. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Mechanism.py +0 -0
  15. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Metric.py +0 -0
  16. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Parameter.py +0 -0
  17. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Policy.py +0 -0
  18. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Space.py +0 -0
  19. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/State.py +0 -0
  20. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/StateUpdateTransmissionChannel.py +0 -0
  21. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/StatefulMetric.py +0 -0
  22. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/Type.py +0 -0
  23. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Classes/__init__.py +0 -0
  24. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Convenience/__init__.py +0 -0
  25. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Convenience/documentation.py +0 -0
  26. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Convenience/starter.py +0 -0
  27. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/__init__.py +0 -0
  28. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/action_transmission_channel.py +0 -0
  29. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/boundary_actions.py +0 -0
  30. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/control_actions.py +0 -0
  31. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/displays.py +0 -0
  32. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/entities.py +0 -0
  33. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/general.py +0 -0
  34. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/implementations.py +0 -0
  35. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/load.py +0 -0
  36. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/mechanism.py +0 -0
  37. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/metrics.py +0 -0
  38. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/parameters.py +0 -0
  39. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/policy.py +0 -0
  40. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/spaces.py +0 -0
  41. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/spec_tree.py +0 -0
  42. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/state_update_transmission_channels.py +0 -0
  43. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/stateful_metrics.py +0 -0
  44. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/states.py +0 -0
  45. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/type.py +0 -0
  46. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Load/wiring.py +0 -0
  47. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/__init__.py +0 -0
  48. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/boundary_actions.py +0 -0
  49. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/control_actions.py +0 -0
  50. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/general.py +0 -0
  51. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/html.py +0 -0
  52. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/markdown.py +0 -0
  53. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/mechanisms.py +0 -0
  54. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/node_map.py +0 -0
  55. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/parameters.py +0 -0
  56. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/policies.py +0 -0
  57. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/spaces.py +0 -0
  58. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/state.py +0 -0
  59. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/tables.py +0 -0
  60. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/Reports/wiring.py +0 -0
  61. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/__init__.py +0 -0
  62. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/schema.py +0 -0
  63. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping/schema.schema.json +0 -0
  64. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping.egg-info/SOURCES.txt +0 -0
  65. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping.egg-info/dependency_links.txt +0 -0
  66. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping.egg-info/requires.txt +0 -0
  67. {math_spec_mapping-0.3.20 → math_spec_mapping-0.4.0}/src/math_spec_mapping.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: math-spec-mapping
3
- Version: 0.3.20
3
+ Version: 0.4.0
4
4
  Summary: A library for easy mapping of mathematical specifications.
5
5
  Author-email: Sean McOwen <Sean@Block.Science>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -13,7 +13,9 @@ Requires-Dist: graphviz>=0.20.1
13
13
  Requires-Dist: ipython>=7.7.0
14
14
  Requires-Dist: pandas>=1.4
15
15
 
16
- # MSML
16
+ # Mathematical Specification Mapping Library (MSML)
17
+
18
+ For documentation and getting started with MSML, please refer to the site for MSML [here](https://blockscience.github.io/MSML/).
17
19
 
18
20
  ## What is the Mathematical Specification Mapping Library (MSML)?
19
21
 
@@ -21,7 +23,7 @@ MSML is a library for standardizing the creation of mathematical specifications
21
23
 
22
24
  It uses block diagram wirings and spaces to represent the actions in complex systems in line with current BlockScience research on Generalized Dynamical Systems. It also adds some enhancements to the primitive blocks to represent richer sets of behaviors.
23
25
 
24
- One good example is the [wiring report](https://github.com/SeanMcOwen/Root-Finding-Simulation/blob/main/MSML/reports/Simulation%20Block.md) for the Root Finding Simulation canonical example.
26
+ One good example is the [wiring report](https://github.com/BlockScience/Predator-Prey-MSML/blob/main/reports/obsidian/Wiring/Hunt%20Prey%20Wiring.md) for hunt prey wiring in the predator prey example (although it is best viewed in Obsidian where all the linking will work).
25
27
 
26
28
  ## Installing the library
27
29
 
@@ -31,6 +33,12 @@ To install the library, simply pip install by running "pip install math_spec_map
31
33
 
32
34
  Writing mathematical specifications can be a difficult process, especially when variable names are changed or new mechanisms are introduced. MSML seeks to streamline the process with automations as well as enhance the abilities of static math specs to deliver deeper insights. Because it is automated, one can write specifications at different levels of details or for different purposes.
33
35
 
36
+ ### Stakeholder Communications
37
+
38
+ - In organizations, senior people / non-developers don't always have as intimate a view of the underlying code as the primary developers in a system because of time constraints and not working as directly with the code as the primary developers
39
+ - Often this means that there is a reliance on asking the primary developers for clarifications and relying on "front-end" kinds of stuff such as visualizations or outputs of the model as opposed to combing through the underlying code
40
+ - MSML seeks to help bridge this gap by allowing for the Obsidian markdown vault that can showcase every component and its dependencies for easier consumption.... this reduces the barriers to entry on understanding the back-end/underlying model
41
+ - Also through things such as code linking, MSML allows for those with code fluency to jump into underlying code if they need to without even opening up the actual project repository
34
42
 
35
43
  ## What are some of the solutions offered?
36
44
 
@@ -79,34 +87,6 @@ Thanks to some of the more advanced features, MSML can be used as an aid for deb
79
87
 
80
88
  The ability to fork the repository of an MSML spec as well as the ability to use it for A/B testing with the policy options makes it well suited for iterating on model evolution.
81
89
 
82
- ## Technical Details
83
-
84
- The documentation on the technical details of using the MSML can be found [here](https://github.com/BlockScience/MSML/tree/main/docs)
85
-
86
- ## Canonical Examples
87
-
88
- [Dummy/Starter Repository](https://github.com/BlockScience/MSML/tree/main/examples/StarterRepo)
89
- [Root Finding Simulation](https://github.com/SeanMcOwen/Root-Finding-Simulation)
90
-
91
- ### Comparison of Canonical Example Features
92
-
93
- | Feature | Dummy | Root Finding |
94
- | --- | --- | --- |
95
- | Action Transmission Channels | X | X |
96
- | Stack Block | X | X |
97
- | Parallel Block | | X |
98
- | Split Block | | |
99
- | Boundary Actions | X | |
100
- | Control Actions | X | X |
101
- | Entities | X | |
102
- | Mechanisms | X | X |
103
- | Parameters | X | X |
104
- | Policies | X | X |
105
- | Spaces | X | X |
106
- | State | X | X |
107
- | Stateful Metrics | | |
108
- | State Update Transmission Channels | X | X |
109
- | Reports | X | X |
110
90
 
111
91
  ## Other Related Repositories
112
92
 
@@ -1,4 +1,6 @@
1
- # MSML
1
+ # Mathematical Specification Mapping Library (MSML)
2
+
3
+ For documentation and getting started with MSML, please refer to the site for MSML [here](https://blockscience.github.io/MSML/).
2
4
 
3
5
  ## What is the Mathematical Specification Mapping Library (MSML)?
4
6
 
@@ -6,7 +8,7 @@ MSML is a library for standardizing the creation of mathematical specifications
6
8
 
7
9
  It uses block diagram wirings and spaces to represent the actions in complex systems in line with current BlockScience research on Generalized Dynamical Systems. It also adds some enhancements to the primitive blocks to represent richer sets of behaviors.
8
10
 
9
- One good example is the [wiring report](https://github.com/SeanMcOwen/Root-Finding-Simulation/blob/main/MSML/reports/Simulation%20Block.md) for the Root Finding Simulation canonical example.
11
+ One good example is the [wiring report](https://github.com/BlockScience/Predator-Prey-MSML/blob/main/reports/obsidian/Wiring/Hunt%20Prey%20Wiring.md) for hunt prey wiring in the predator prey example (although it is best viewed in Obsidian where all the linking will work).
10
12
 
11
13
  ## Installing the library
12
14
 
@@ -16,6 +18,12 @@ To install the library, simply pip install by running "pip install math_spec_map
16
18
 
17
19
  Writing mathematical specifications can be a difficult process, especially when variable names are changed or new mechanisms are introduced. MSML seeks to streamline the process with automations as well as enhance the abilities of static math specs to deliver deeper insights. Because it is automated, one can write specifications at different levels of details or for different purposes.
18
20
 
21
+ ### Stakeholder Communications
22
+
23
+ - In organizations, senior people / non-developers don't always have as intimate a view of the underlying code as the primary developers in a system because of time constraints and not working as directly with the code as the primary developers
24
+ - Often this means that there is a reliance on asking the primary developers for clarifications and relying on "front-end" kinds of stuff such as visualizations or outputs of the model as opposed to combing through the underlying code
25
+ - MSML seeks to help bridge this gap by allowing for the Obsidian markdown vault that can showcase every component and its dependencies for easier consumption.... this reduces the barriers to entry on understanding the back-end/underlying model
26
+ - Also through things such as code linking, MSML allows for those with code fluency to jump into underlying code if they need to without even opening up the actual project repository
19
27
 
20
28
  ## What are some of the solutions offered?
21
29
 
@@ -64,34 +72,6 @@ Thanks to some of the more advanced features, MSML can be used as an aid for deb
64
72
 
65
73
  The ability to fork the repository of an MSML spec as well as the ability to use it for A/B testing with the policy options makes it well suited for iterating on model evolution.
66
74
 
67
- ## Technical Details
68
-
69
- The documentation on the technical details of using the MSML can be found [here](https://github.com/BlockScience/MSML/tree/main/docs)
70
-
71
- ## Canonical Examples
72
-
73
- [Dummy/Starter Repository](https://github.com/BlockScience/MSML/tree/main/examples/StarterRepo)
74
- [Root Finding Simulation](https://github.com/SeanMcOwen/Root-Finding-Simulation)
75
-
76
- ### Comparison of Canonical Example Features
77
-
78
- | Feature | Dummy | Root Finding |
79
- | --- | --- | --- |
80
- | Action Transmission Channels | X | X |
81
- | Stack Block | X | X |
82
- | Parallel Block | | X |
83
- | Split Block | | |
84
- | Boundary Actions | X | |
85
- | Control Actions | X | X |
86
- | Entities | X | |
87
- | Mechanisms | X | X |
88
- | Parameters | X | X |
89
- | Policies | X | X |
90
- | Spaces | X | X |
91
- | State | X | X |
92
- | Stateful Metrics | | |
93
- | State Update Transmission Channels | X | X |
94
- | Reports | X | X |
95
75
 
96
76
  ## Other Related Repositories
97
77
 
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.0"]
3
3
  build-backend = "setuptools.build_meta"
4
4
  [project]
5
5
  name = "math-spec-mapping"
6
- version = "0.3.20"
6
+ version = "0.4.0"
7
7
  authors = [
8
8
  { name="Sean McOwen", email="Sean@Block.Science" },
9
9
  ]
@@ -75,7 +75,7 @@ class Block:
75
75
  if self.block_type == "Mechanism":
76
76
  for u in sorted(self.updates, key=lambda x: x[0].name + "-" + x[1].name):
77
77
  out += "\n"
78
- out += "X{} --> {}".format(
78
+ out += 'X{} --"State Update"--> {}'.format(
79
79
  i,
80
80
  (u[0].name + "-" + u[1].name).replace(" ", "-"),
81
81
  )
@@ -248,7 +248,7 @@ class ParallelBlock(Block):
248
248
  self.all_updates, key=lambda x: x[0].name + "-" + x[1].name
249
249
  ):
250
250
  out += "\n"
251
- out += "X{} --> {}".format(
251
+ out += 'X{} --"State Update"--> {}'.format(
252
252
  i,
253
253
  (u[0].name + "-" + u[1].name).replace(" ", "-"),
254
254
  )
@@ -445,7 +445,7 @@ class StackBlock(Block):
445
445
  self.all_updates, key=lambda x: x[0].name + "-" + x[1].name
446
446
  ):
447
447
  out += "\n"
448
- out += "X{} --> {}".format(
448
+ out += 'X{} --"State Update"--> {}'.format(
449
449
  i,
450
450
  (u[0].name + "-" + u[1].name).replace(" ", "-"),
451
451
  )
@@ -727,11 +727,13 @@ class MathSpec:
727
727
  state_preperation_functions=None,
728
728
  parameter_preperation_functions=None,
729
729
  metrics_functions=None,
730
+ append_param_change_columns=False,
730
731
  ):
731
732
  state_l = []
732
733
  params_l = []
733
734
  df_l = []
734
735
  metrics_l = []
736
+ param_mods = set()
735
737
  for experiment in experiments:
736
738
  for i in range(experiment["Monte Carlo Runs"]):
737
739
  state, params, msi, df, metrics = self.run_experiment(
@@ -743,6 +745,11 @@ class MathSpec:
743
745
  parameter_preperation_functions=parameter_preperation_functions,
744
746
  metrics_functions=metrics_functions,
745
747
  )
748
+ if append_param_change_columns:
749
+ if experiment["Param Modifications"]:
750
+ for key in experiment["Param Modifications"]:
751
+ df[key] = experiment["Param Modifications"][key]
752
+ param_mods.add(key)
746
753
  df["Monte Carlo Run"] = i + 1
747
754
  df["Experiment"] = experiment["Name"]
748
755
  metrics.loc["Monte Carlo Run"] = i + 1
@@ -753,6 +760,9 @@ class MathSpec:
753
760
  df_l.append(df)
754
761
  metrics_l.append(metrics)
755
762
  df = pd.concat(df_l)
763
+ if append_param_change_columns:
764
+ for key in param_mods:
765
+ df[key] = df[key].fillna(params_base[key])
756
766
  metrics = pd.concat(metrics_l, axis=1).T
757
767
  return df, metrics, state_l, params_l
758
768
 
@@ -1022,6 +1032,12 @@ class MathSpecImplementation:
1022
1032
  ), "No functional parameterization for {}. To fix this error, add {} to the parameters passed to ms.build_implementation. Option can be: {}".format(
1023
1033
  ca.name, "FP " + ca.name, [x.name for x in opts]
1024
1034
  )
1035
+ assert (
1036
+ self.params["FP {}".format(ca.name)]
1037
+ in self.ms.functional_parameters["FP {}".format(ca.name)]
1038
+ ), "{} is not a valid functional parameterization for {}".format(
1039
+ self.params["FP {}".format(ca.name)], ca.name
1040
+ )
1025
1041
  opt = self.ms.functional_parameters["FP {}".format(ca.name)][
1026
1042
  self.params["FP {}".format(ca.name)]
1027
1043
  ]
@@ -1061,6 +1077,13 @@ class MathSpecImplementation:
1061
1077
  ba.name, "FP " + ba.name, [x.name for x in opts]
1062
1078
  )
1063
1079
 
1080
+ assert (
1081
+ self.params["FP {}".format(ba.name)]
1082
+ in self.ms.functional_parameters["FP {}".format(ba.name)]
1083
+ ), "{} is not a valid functional parameterization for {}".format(
1084
+ self.params["FP {}".format(ba.name)], ba.name
1085
+ )
1086
+
1064
1087
  opt = self.ms.functional_parameters["FP {}".format(ba.name)][
1065
1088
  self.params["FP {}".format(ba.name)]
1066
1089
  ]
@@ -1165,6 +1188,12 @@ class MathSpecImplementation:
1165
1188
  ), "No functional parameterization for {}. To fix this error, add {} to the parameters passed to ms.build_implementation. Option can be: {}".format(
1166
1189
  p.name, "FP " + p.name, [x.name for x in opts]
1167
1190
  )
1191
+ assert (
1192
+ self.params["FP {}".format(p.name)]
1193
+ in self.ms.functional_parameters["FP {}".format(p.name)]
1194
+ ), "{} is not a valid functional parameterization for {}".format(
1195
+ self.params["FP {}".format(p.name)], p.name
1196
+ )
1168
1197
  opt = self.ms.functional_parameters["FP {}".format(p.name)][
1169
1198
  self.params["FP {}".format(p.name)]
1170
1199
  ]
@@ -92,6 +92,15 @@ def create_milestone_label_matrix(df, exclude_milestones=None):
92
92
  labels = list(df.columns[4:])
93
93
  labels = sorted([x for x in labels if x not in priority_labels])
94
94
  milestones = sorted(list(df[~pd.isnull(df["Milestone"])]["Milestone"].unique()))
95
+ try:
96
+ milestones = sorted(
97
+ milestones,
98
+ key=lambda x: int(x.split(".")[0][1:]) * 10000
99
+ + int(x.split(".")[1]) * 100
100
+ + int(x.split(".")[2]),
101
+ )
102
+ except:
103
+ pass
95
104
 
96
105
  table = []
97
106
  for label in labels:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: math-spec-mapping
3
- Version: 0.3.20
3
+ Version: 0.4.0
4
4
  Summary: A library for easy mapping of mathematical specifications.
5
5
  Author-email: Sean McOwen <Sean@Block.Science>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -13,7 +13,9 @@ Requires-Dist: graphviz>=0.20.1
13
13
  Requires-Dist: ipython>=7.7.0
14
14
  Requires-Dist: pandas>=1.4
15
15
 
16
- # MSML
16
+ # Mathematical Specification Mapping Library (MSML)
17
+
18
+ For documentation and getting started with MSML, please refer to the site for MSML [here](https://blockscience.github.io/MSML/).
17
19
 
18
20
  ## What is the Mathematical Specification Mapping Library (MSML)?
19
21
 
@@ -21,7 +23,7 @@ MSML is a library for standardizing the creation of mathematical specifications
21
23
 
22
24
  It uses block diagram wirings and spaces to represent the actions in complex systems in line with current BlockScience research on Generalized Dynamical Systems. It also adds some enhancements to the primitive blocks to represent richer sets of behaviors.
23
25
 
24
- One good example is the [wiring report](https://github.com/SeanMcOwen/Root-Finding-Simulation/blob/main/MSML/reports/Simulation%20Block.md) for the Root Finding Simulation canonical example.
26
+ One good example is the [wiring report](https://github.com/BlockScience/Predator-Prey-MSML/blob/main/reports/obsidian/Wiring/Hunt%20Prey%20Wiring.md) for hunt prey wiring in the predator prey example (although it is best viewed in Obsidian where all the linking will work).
25
27
 
26
28
  ## Installing the library
27
29
 
@@ -31,6 +33,12 @@ To install the library, simply pip install by running "pip install math_spec_map
31
33
 
32
34
  Writing mathematical specifications can be a difficult process, especially when variable names are changed or new mechanisms are introduced. MSML seeks to streamline the process with automations as well as enhance the abilities of static math specs to deliver deeper insights. Because it is automated, one can write specifications at different levels of details or for different purposes.
33
35
 
36
+ ### Stakeholder Communications
37
+
38
+ - In organizations, senior people / non-developers don't always have as intimate a view of the underlying code as the primary developers in a system because of time constraints and not working as directly with the code as the primary developers
39
+ - Often this means that there is a reliance on asking the primary developers for clarifications and relying on "front-end" kinds of stuff such as visualizations or outputs of the model as opposed to combing through the underlying code
40
+ - MSML seeks to help bridge this gap by allowing for the Obsidian markdown vault that can showcase every component and its dependencies for easier consumption.... this reduces the barriers to entry on understanding the back-end/underlying model
41
+ - Also through things such as code linking, MSML allows for those with code fluency to jump into underlying code if they need to without even opening up the actual project repository
34
42
 
35
43
  ## What are some of the solutions offered?
36
44
 
@@ -79,34 +87,6 @@ Thanks to some of the more advanced features, MSML can be used as an aid for deb
79
87
 
80
88
  The ability to fork the repository of an MSML spec as well as the ability to use it for A/B testing with the policy options makes it well suited for iterating on model evolution.
81
89
 
82
- ## Technical Details
83
-
84
- The documentation on the technical details of using the MSML can be found [here](https://github.com/BlockScience/MSML/tree/main/docs)
85
-
86
- ## Canonical Examples
87
-
88
- [Dummy/Starter Repository](https://github.com/BlockScience/MSML/tree/main/examples/StarterRepo)
89
- [Root Finding Simulation](https://github.com/SeanMcOwen/Root-Finding-Simulation)
90
-
91
- ### Comparison of Canonical Example Features
92
-
93
- | Feature | Dummy | Root Finding |
94
- | --- | --- | --- |
95
- | Action Transmission Channels | X | X |
96
- | Stack Block | X | X |
97
- | Parallel Block | | X |
98
- | Split Block | | |
99
- | Boundary Actions | X | |
100
- | Control Actions | X | X |
101
- | Entities | X | |
102
- | Mechanisms | X | X |
103
- | Parameters | X | X |
104
- | Policies | X | X |
105
- | Spaces | X | X |
106
- | State | X | X |
107
- | Stateful Metrics | | |
108
- | State Update Transmission Channels | X | X |
109
- | Reports | X | X |
110
90
 
111
91
  ## Other Related Repositories
112
92