Skip to main content

A library for easy mapping of mathematical specifications.

Project description

MSML

What is the Mathematical Specification Mapping Library (MSML)?

MSML is a library for standardizing the creation of mathematical specifications as JSON objects as well as aiding in the automation of report and visualization creation from these standardized JSON.

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.

One good example is the wiring report for the Root Finding Simulation canonical example.

Installing the library

To install the library, simply pip install by running "pip install math_spec_mapping"

Why MSML?

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.

What are some of the solutions offered?

  • Automation: Automate writing of a specification
  • Standardization: Ensure standardization across teams working to spec out a system
  • Flexibility: Allow for creating views on the fly and in multiple ways depending on what stakeholders find important
  • Trackability: Keep a repository of a JSON file to track changes to the spec with the same enhancements git provides for projects already

How does MSML work?

graph TD
A[JSON Object \n\n Each spec has a repo for tracking changes \n Must conform to the json specification \n Defines all aspects of the spec including blocks, spaces and actions] -->B[MSML Object \n\n JSON file is parsed, with validations and mappings along the way \n Can show different views on the fly]
    B --> C[Report Outputs \n\n Automatically build reports for the full spec or subviews \n Example: all blocks with an effect on variable XYZ]

MSML in the Engineering Lifecycle

The engineering lifecycle as defined and visualized in "Block by Block: Managing Complexity with Model-Based Systems Engineering" is depicted below.

Systems Engineering Diagram

MSML can aid in all five of these phases in different ways.

Ideation and Conceptualization

During ideation phases, users of MSML can leverage the markdown writing tool to begin organizing different thoughts into components. For example, if one were trying to model a system that has multiple currencies, i.e. USD and the Euro, those could be added in as MSML types as they are discovered. The markdown report writing supports wiki-links for use in Obsidian or a similar tool allowing users to iteratively catalog different components they find in their research and ideation.

Requirements and Design

When moving into requirements and design, MSML provides a suite of reports so that presentations to stakeholders can be insightful but tailored to the different audiences. Feedback can be iteratively incorporated into the spec with reports being re-run.

Implementation, Integration, and Testing

In its basic form, a spec from MSML can be used to guide implementations because blocks can be transformed into actual code/functions and spaces act as the parameterizations of those functions. There is also experimental work being done on meta-programming so that MSML could either template simulation models or even be used to hold and write code where applicable for things such as A/B testing.

Operations and Maintenance

Thanks to some of the more advanced features, MSML can be used as an aid for debugging and system validation. The functionality around seeing what parameters effect which blocks directly or downstream indirectly helps developers quickly identify root causes of issues. The linkages between mechanisms and what pieces of state they update allows for developers to quickly see all possible paths to variable changes there are in case something looks amiss.

Governance and Evolution

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.

Technical Details

The documentation on the technical details of using the MSML can be found here

Canonical Examples

Dummy/Starter Repository Root Finding Simulation

Comparison of Canonical Example Features

Feature Dummy Root Finding
Action Transmission Channels X X
Stack Block X X
Parallel Block X
Split Block
Boundary Actions X
Control Actions X X
Entities X
Mechanisms X X
Parameters X X
Policies X X
Spaces X X
State X X
Stateful Metrics
State Update Transmission Channels X X
Reports X X

Other Related Repositories

GDS-MSML-cadCAD Repository

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

math-spec-mapping-0.2.6.7.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

math_spec_mapping-0.2.6.7-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file math-spec-mapping-0.2.6.7.tar.gz.

File metadata

  • Download URL: math-spec-mapping-0.2.6.7.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for math-spec-mapping-0.2.6.7.tar.gz
Algorithm Hash digest
SHA256 cd3e123c023d319b34fc72a69475526d2564e417cb708fdacfff640b9c1e6957
MD5 941479671d2ca2048ba5654292236466
BLAKE2b-256 76da2b8391cc90fd71557219de7d74d6184496f6f214c3a4dd55ae66e2f2569f

See more details on using hashes here.

File details

Details for the file math_spec_mapping-0.2.6.7-py3-none-any.whl.

File metadata

File hashes

Hashes for math_spec_mapping-0.2.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2ff174fd61aed28f4380f6f969b0457cc3303d703db89e0fee6b82edf4223ca7
MD5 071e3f839f2ffb34604ff42d48339efb
BLAKE2b-256 6b50cde7016d0c5c2a3b4e435472c6174ba4582f032431167f14b1722adf95a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page