A Petri net modeling framework for the Julia programming language https://mehalter.github.io/Petri.jl/stable/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.8 KiB

1 year ago
  1. ![Petri.jl](docs/src/assets/full-logo.png)
  2. [![Documentation](https://github.com/mehalter/Petri.jl/workflows/Documentation/badge.svg)](https://mehalter.github.io/Petri.jl/stable/)
  3. ![Tests](https://github.com/mehalter/Petri.jl/workflows/Tests/badge.svg)
  4. [![codecov](https://codecov.io/gh/mehalter/Petri.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/mehalter/Petri.jl)
  5. [![DOI](https://zenodo.org/badge/203420191.svg)](https://zenodo.org/badge/latestdoi/203420191)
  6. `Petri.jl` is a Petri net modeling framework for the Julia programming language.
  7. `Petri` makes it easy to build complex reaction networks using a simple DSL.
  8. Once a model is defined, `Petri.jl` has support to generate ODE solutions and
  9. stochastic simulations using `DifferentialEquations.jl`. Examples and basic
  10. usage can be found in the documentation.
  11. ## Goals
  12. This is related to the
  13. [DiffeqBiological](https://github.com/JuliaDiffEq/DiffEqBiological.jl) Reaction
  14. DSL, but takes a different implementation approach. Instead of building our
  15. framework around symbolic algebra and standard chemical notion, we are working
  16. off the Applied Category Theory approach to reaction networks [[Baez Pollard, 2017](http://math.ucr.edu/home/baez/RxNet.pdf)].
  17. There are operations that are easy to do on the `Petri.Model` like "add a
  18. transition from R to S" that require simultaneously changing multiple parts of
  19. the algebraic formulation. Applied Category Theory gives a sound theoretical
  20. framework for manipulating Petri Nets as a model in terms of the given domain.
  21. `Petri` is a Julia package primarily intended to investigate how we can
  22. operationalize this theory into practical scientific software.
  23. See [AlgebraicPetri](https://github.com/AlgebraicJulia/AlgebraicPetri.jl) for
  24. tools that work with Petri net models and manipulating them with higher level
  25. APIs based on Applied Category Theory.